Hướng dẫn draw straight line python - vẽ đường thẳng python

Tôi muốn biết cách vẽ một dòng bằng tọa độ X và Y của hai điểm 2 chiều. Tôi đã thử đồ họa rùa, nhưng nó hoạt động bằng cách sử dụng độ.

Nội phân Chính showShow

  • Điều chỉnh cốt truyện: Màu sắc dòng và Styles¶
  • Điều chỉnh lô: Giới hạn trục
  • Ghi nhãn lô
  • Bên cạnh: matplotlib gotchas¶
  • Làm thế nào để bạn tạo một dòng trong Python?
  • Làm thế nào để bạn vẽ một đường thẳng trong Python?
  • Làm thế nào để bạn in một dòng trống trong Python?
  • Làm thế nào để bạn vẽ một đường giữa hai điểm trong Python?

nbro

14.3K27 Huy hiệu vàng104 Huy hiệu bạc188 Huy hiệu đồng27 gold badges104 silver badges188 bronze badges

Hỏi ngày 20 tháng 10 năm 2015 lúc 15:14Oct 20, 2015 at 15:14

1

Tùy thuộc vào nhu cầu của bạn để vẽ đồ thị, bạn có thể sử dụng matplotlib

import matplotlib.pyplot as plt
plt.plot[[x1,x2],[y1,y2]]
plt.show[]

Đã trả lời ngày 20 tháng 10 năm 2015 lúc 15:23Oct 20, 2015 at 15:23

efirvidaefirvidaefirvida

4.3592 Huy hiệu vàng39 Huy hiệu bạc62 Huy hiệu Đồng2 gold badges39 silver badges62 bronze badges

Tôi đã thử đồ họa rùa, nhưng nó hoạt động bằng cách sử dụng độ.

Tiền đề của bạn không giữ được - Rùa có thể làm được, không có mức độ cần thiết:

import turtle

point1 = [50, 100]
point2 = [150, 200]

turtle.penup[]
turtle.goto[point1]
turtle.pendown[]
turtle.goto[point2]

turtle.hideturtle[]
turtle.exit title[]

Đã trả lời ngày 2 tháng 5 năm 2018 lúc 22:13May 2, 2018 at 22:13

CDlanecdlanecdlane

38.2k5 Huy hiệu vàng27 Huy hiệu bạc74 Huy hiệu đồng5 gold badges27 silver badges74 bronze badges

Bạn có thể sử dụng pygame tùy thuộc vào những gì bạn đang làm vì nó cho phép tương tự:

line[Surface, color, [x1,y1], [x2,y2], width]

Ví dụ: khi môi trường đã được thiết lập:

pygame.draw.line[screen, [255,0,255], [20,20], [70,80], 2]

có thể vẽ:

Đã trả lời ngày 20 tháng 10 năm 2015 lúc 15:23Oct 20, 2015 at 15:23

1

efirvidaefirvida

import tkinter
x1, y1, x2, y2 = 10, 20, 30, 40
window = tkinter.Tk[]
canva = tkinter.Canvas[window]
line = canva.create_line[x1, y1, x2, y2]
canva.pack[]

4.3592 Huy hiệu vàng39 Huy hiệu bạc62 Huy hiệu ĐồngOct 20, 2015 at 15:28

Tôi đã thử đồ họa rùa, nhưng nó hoạt động bằng cách sử dụng độ.volent

Tiền đề của bạn không giữ được - Rùa có thể làm được, không có mức độ cần thiết:6 silver badges16 bronze badges

2

Đã trả lời ngày 2 tháng 5 năm 2018 lúc 22:13

angle = arctan[[y2-y1]/[x2-x1]]

CDlanecdlane

deg = rad * [180/pi]

38.2k5 Huy hiệu vàng27 Huy hiệu bạc74 Huy hiệu đồngOct 20, 2015 at 15:19

Bạn có thể sử dụng pygame tùy thuộc vào những gì bạn đang làm vì nó cho phép tương tự:Rob S.

Ví dụ: khi môi trường đã được thiết lập:6 silver badges21 bronze badges

có thể vẽ:

from PIL import Image, ImageDraw

im = Image.new['RGB', [100, 100]]

draw = ImageDraw.Draw[im]
draw.line[[0, 0] + im.size, fill=128]
draw.line[[0, im.size[1], im.size[0], 0], fill=128]

im.save['test.png']

Nếu bạn đã sử dụng

line[Surface, color, [x1,y1], [x2,y2], width]
3, bạn có thể sử dụng Canva
line[Surface, color, [x1,y1], [x2,y2], width]
4:Aug 2, 2018 at 23:33

Đã trả lời ngày 20 tháng 10 năm 2015 lúc 15:28

In [1]:

%matplotlib inline
import matplotlib.pyplot as plt
plt.style.use['seaborn-whitegrid']
import numpy as np

VolentVolent

4736 Huy hiệu bạc16 Huy hiệu Đồng

fig = plt.figure[]
ax = plt.axes[]

Bạn có thể tính toán góc từ 4 điểm bằng cách sử dụng công thức sau

Chỉ là một cảnh báo, tùy thuộc vào thư viện toán học bạn sử dụng, điều này có thể sẽ xuất ra trong radian. Tuy nhiên, bạn có thể chuyển đổi radian sang độ bằng công thức sau.

In [3]:

import turtle

point1 = [50, 100]
point2 = [150, 200]

turtle.penup[]
turtle.goto[point1]
turtle.pendown[]
turtle.goto[point2]

turtle.hideturtle[]
turtle.exit title[]
0

Đã trả lời ngày 20 tháng 10 năm 2015 lúc 15:19

Rob S.Rob S.

In [5]:

import turtle

point1 = [50, 100]
point2 = [150, 200]

turtle.penup[]
turtle.goto[point1]
turtle.pendown[]
turtle.goto[point2]

turtle.hideturtle[]
turtle.exit title[]
1

9236 Huy hiệu bạc21 Huy hiệu Đồng

Điều chỉnh cốt truyện: Màu sắc dòng và Styles¶

Chỉ để hoàn thiện, bạn cũng có thể sử dụng mô -đun hình ảnh của gối [Thư viện hình ảnh Python / Fork Fork]. Bằng cách đó, bạn không cần một cửa sổ và thay vào đó, bạn có thể lưu hình ảnh được vẽ vào một tệp.

In [6]:

import turtle

point1 = [50, 100]
point2 = [150, 200]

turtle.penup[]
turtle.goto[point1]
turtle.pendown[]
turtle.goto[point2]

turtle.hideturtle[]
turtle.exit title[]
2

Đã trả lời ngày 2 tháng 8 năm 2018 lúc 23:33

Có lẽ đơn giản nhất trong tất cả các ô là hình dung của một hàm $ y = f [x] $. Ở đây chúng tôi sẽ xem xét đầu tiên về việc tạo ra một cốt truyện đơn giản thuộc loại này. Như với tất cả các phần sau, chúng tôi sẽ bắt đầu bằng cách thiết lập máy tính xách tay để vẽ và nhập các gói chúng tôi sẽ sử dụng:

In [7]:

import turtle

point1 = [50, 100]
point2 = [150, 200]

turtle.penup[]
turtle.goto[point1]
turtle.pendown[]
turtle.goto[point2]

turtle.hideturtle[]
turtle.exit title[]
3

Đối với tất cả các sơ đồ matplotlib, chúng tôi bắt đầu bằng cách tạo một hình và một trục. Ở dạng đơn giản nhất, một hình và trục có thể được tạo như sau:

In [8]:

import turtle

point1 = [50, 100]
point2 = [150, 200]

turtle.penup[]
turtle.goto[point1]
turtle.pendown[]
turtle.goto[point2]

turtle.hideturtle[]
turtle.exit title[]
4

Trong & nbsp; [2]:

Trong matplotlib, hình [một thể hiện của lớp

line[Surface, color, [x1,y1], [x2,y2], width]
5] có thể được coi là một thùng chứa duy nhất chứa tất cả các đối tượng đại diện cho trục, đồ họa, văn bản và nhãn. Các trục [một thể hiện của lớp
line[Surface, color, [x1,y1], [x2,y2], width]
6] là những gì chúng ta thấy ở trên: một hộp giới hạn với ve và nhãn, cuối cùng sẽ chứa các yếu tố cốt truyện tạo nên hình dung của chúng ta. Trong suốt cuốn sách này, chúng tôi thường sử dụng tên biến
line[Surface, color, [x1,y1], [x2,y2], width]
7 để chỉ một thể hiện hình và
line[Surface, color, [x1,y1], [x2,y2], width]
8 để chỉ một thể hiện trục hoặc nhóm các thể hiện trục.

Điều chỉnh lô: Giới hạn trục

Matplotlib thực hiện một công việc tốt là chọn giới hạn trục mặc định cho cốt truyện của bạn, nhưng đôi khi thật tuyệt khi có quyền kiểm soát tốt hơn. Cách cơ bản nhất để điều chỉnh giới hạn trục là sử dụng các phương pháp

pygame.draw.line[screen, [255,0,255], [20,20], [70,80], 2]
8 và
pygame.draw.line[screen, [255,0,255], [20,20], [70,80], 2]
9:

In [9]:

import turtle

point1 = [50, 100]
point2 = [150, 200]

turtle.penup[]
turtle.goto[point1]
turtle.pendown[]
turtle.goto[point2]

turtle.hideturtle[]
turtle.exit title[]
5

Nếu vì một lý do nào đó bạn muốn một trục được hiển thị ngược, bạn chỉ có thể đảo ngược thứ tự của các đối số:

In [10]:

import turtle

point1 = [50, 100]
point2 = [150, 200]

turtle.penup[]
turtle.goto[point1]
turtle.pendown[]
turtle.goto[point2]

turtle.hideturtle[]
turtle.exit title[]
6

Một phương pháp liên quan hữu ích là

import tkinter
x1, y1, x2, y2 = 10, 20, 30, 40
window = tkinter.Tk[]
canva = tkinter.Canvas[window]
line = canva.create_line[x1, y1, x2, y2]
canva.pack[]
0 [lưu ý ở đây sự nhầm lẫn tiềm năng giữa các trục với E và trục có I]. Phương thức
import tkinter
x1, y1, x2, y2 = 10, 20, 30, 40
window = tkinter.Tk[]
canva = tkinter.Canvas[window]
line = canva.create_line[x1, y1, x2, y2]
canva.pack[]
0 cho phép bạn đặt giới hạn
import tkinter
x1, y1, x2, y2 = 10, 20, 30, 40
window = tkinter.Tk[]
canva = tkinter.Canvas[window]
line = canva.create_line[x1, y1, x2, y2]
canva.pack[]
2 và
import tkinter
x1, y1, x2, y2 = 10, 20, 30, 40
window = tkinter.Tk[]
canva = tkinter.Canvas[window]
line = canva.create_line[x1, y1, x2, y2]
canva.pack[]
3 chỉ bằng một cuộc gọi, bằng cách truyền một danh sách chỉ định
import tkinter
x1, y1, x2, y2 = 10, 20, 30, 40
window = tkinter.Tk[]
canva = tkinter.Canvas[window]
line = canva.create_line[x1, y1, x2, y2]
canva.pack[]
4:

In [11]:

import turtle

point1 = [50, 100]
point2 = [150, 200]

turtle.penup[]
turtle.goto[point1]
turtle.pendown[]
turtle.goto[point2]

turtle.hideturtle[]
turtle.exit title[]
7

Phương thức

import tkinter
x1, y1, x2, y2 = 10, 20, 30, 40
window = tkinter.Tk[]
canva = tkinter.Canvas[window]
line = canva.create_line[x1, y1, x2, y2]
canva.pack[]
0 thậm chí còn vượt ra ngoài điều này, cho phép bạn thực hiện những việc như tự động thắt chặt các giới hạn xung quanh cốt truyện hiện tại:

In [12]:

import turtle

point1 = [50, 100]
point2 = [150, 200]

turtle.penup[]
turtle.goto[point1]
turtle.pendown[]
turtle.goto[point2]

turtle.hideturtle[]
turtle.exit title[]
8

Nó cho phép các thông số kỹ thuật cấp cao hơn, chẳng hạn như đảm bảo tỷ lệ khung hình bằng nhau để trên màn hình của bạn, một đơn vị trong

import tkinter
x1, y1, x2, y2 = 10, 20, 30, 40
window = tkinter.Tk[]
canva = tkinter.Canvas[window]
line = canva.create_line[x1, y1, x2, y2]
canva.pack[]
2 bằng một đơn vị trong
import tkinter
x1, y1, x2, y2 = 10, 20, 30, 40
window = tkinter.Tk[]
canva = tkinter.Canvas[window]
line = canva.create_line[x1, y1, x2, y2]
canva.pack[]
3:

In [13]:

import turtle

point1 = [50, 100]
point2 = [150, 200]

turtle.penup[]
turtle.goto[point1]
turtle.pendown[]
turtle.goto[point2]

turtle.hideturtle[]
turtle.exit title[]
9

Để biết thêm thông tin về giới hạn trục và các khả năng khác của phương pháp

import tkinter
x1, y1, x2, y2 = 10, 20, 30, 40
window = tkinter.Tk[]
canva = tkinter.Canvas[window]
line = canva.create_line[x1, y1, x2, y2]
canva.pack[]
8, hãy tham khảo tài liệu
import tkinter
x1, y1, x2, y2 = 10, 20, 30, 40
window = tkinter.Tk[]
canva = tkinter.Canvas[window]
line = canva.create_line[x1, y1, x2, y2]
canva.pack[]
8.

Ghi nhãn lô

Là phần cuối cùng của phần này, chúng ta sẽ xem xét ngắn gọn việc ghi nhãn của các lô: tiêu đề, nhãn trục và truyền thuyết đơn giản.

Các tiêu đề và nhãn trục là các nhãn đơn giản nhất như vậy, có các phương thức có thể được sử dụng để nhanh chóng đặt chúng:

In [14]:

line[Surface, color, [x1,y1], [x2,y2], width]
0

Vị trí, kích thước và kiểu dáng của các nhãn này có thể được điều chỉnh bằng cách sử dụng các đối số tùy chọn cho hàm. Để biết thêm thông tin, hãy xem tài liệu Matplotlib và tài liệu của từng chức năng này.

Khi nhiều dòng đang được hiển thị trong một trục duy nhất, có thể hữu ích để tạo ra một huyền thoại cốt truyện dán nhãn cho mỗi loại dòng. Một lần nữa, Matplotlib có một cách tích hợp để nhanh chóng tạo ra một huyền thoại như vậy. Nó được thực hiện thông qua phương pháp [bạn đoán nó]

angle = arctan[[y2-y1]/[x2-x1]]
0. Mặc dù có một số cách hợp lệ để sử dụng điều này, tôi thấy dễ dàng nhất để chỉ định nhãn của mỗi dòng bằng cách sử dụng từ khóa
angle = arctan[[y2-y1]/[x2-x1]]
1 của chức năng cốt truyện:

In [15]:

line[Surface, color, [x1,y1], [x2,y2], width]
1

Như bạn có thể thấy, chức năng

angle = arctan[[y2-y1]/[x2-x1]]
0 theo dõi kiểu và màu sắc dòng, và phù hợp với chúng với nhãn chính xác. Thông tin thêm về chỉ định và định dạng các truyền thuyết cốt truyện có thể được tìm thấy trong tài liệu
angle = arctan[[y2-y1]/[x2-x1]]
3; Ngoài ra, chúng tôi sẽ đề cập đến một số tùy chọn huyền thoại tiên tiến hơn trong việc tùy chỉnh các huyền thoại cốt truyện.

Bên cạnh: matplotlib gotchas¶

Trong khi hầu hết các hàm

angle = arctan[[y2-y1]/[x2-x1]]
4 dịch trực tiếp sang các phương thức
line[Surface, color, [x1,y1], [x2,y2], width]
8 [chẳng hạn như
pygame.draw.line[screen, [255,0,255], [20,20], [70,80], 2]
1 →
angle = arctan[[y2-y1]/[x2-x1]]
7,
angle = arctan[[y2-y1]/[x2-x1]]
0 →
angle = arctan[[y2-y1]/[x2-x1]]
9, v.v.], đây không phải là trường hợp cho tất cả các lệnh. Cụ thể, các chức năng để đặt giới hạn, nhãn và tiêu đề được sửa đổi một chút. Để chuyển đổi giữa các hàm kiểu MATLAB và các phương thức hướng đối tượng, hãy thực hiện các thay đổi sau:

  • deg = rad * [180/pi]
    
    0 →
    deg = rad * [180/pi]
    
    1
  • deg = rad * [180/pi]
    
    2 →
    deg = rad * [180/pi]
    
    3
  • pygame.draw.line[screen, [255,0,255], [20,20], [70,80], 2]
    
    8 →
    deg = rad * [180/pi]
    
    5
  • pygame.draw.line[screen, [255,0,255], [20,20], [70,80], 2]
    
    9 →
    deg = rad * [180/pi]
    
    7
  • deg = rad * [180/pi]
    
    8 →
    deg = rad * [180/pi]
    
    9

Trong giao diện hướng đối tượng để vẽ sơ đồ, thay vì gọi các hàm này một cách riêng lẻ, thường thuận tiện hơn khi sử dụng phương thức

from PIL import Image, ImageDraw

im = Image.new['RGB', [100, 100]]

draw = ImageDraw.Draw[im]
draw.line[[0, 0] + im.size, fill=128]
draw.line[[0, im.size[1], im.size[0], 0], fill=128]

im.save['test.png']
0 để đặt tất cả các thuộc tính này cùng một lúc:

In [16]:

line[Surface, color, [x1,y1], [x2,y2], width]
2

Làm thế nào để bạn tạo một dòng trong Python?

line [] vẽ một ranh giới giữa các tọa độ trong danh sách XY. Các tham số: XY-Trình tự của 2-TUMPLE như [[x, y], [x, y], trên] hoặc các giá trị số như [x, y, x, y, y,]. Điền vào - màu để sử dụng cho dòng. Draws a line between the coordinates in the xy list. Parameters: xy – Sequence of either 2-tuples like [[x, y], [x, y], …] or numeric values like [x, y, x, y, …]. fill – Color to use for the line.

Làm thế nào để bạn vẽ một đường thẳng trong Python?

Hàm axhline [] trong mô -đun pyplot của thư viện matplotlib được sử dụng để thêm một đường ngang trên trục. Tham số: Y: Vị trí trên trục y Để vẽ đường thẳng, nó chấp nhận số nguyên.. Parameters: y: Position on Y axis to plot the line, It accepts integers.

Làm thế nào để bạn in một dòng trống trong Python?

Sử dụng print [] mà không có bất kỳ đối số nào để in một dòng trống print [] mà không có bất kỳ đối số nào để xuất một dòng trống. Call print[] without any arguments to output a blank line.

Làm thế nào để bạn vẽ một đường giữa hai điểm trong Python?

Sử dụng matplotlib ...

điểm1 = [1, 2].

điểm2 = [3, 4].

x_values ​​= [point1 [0], point2 [0]] thu thập các giá trị x ..

y_values ​​= [point1 [1], point2 [1]] thu thập các giá trị y ..

plt. Lô đất [x_values, y_values].

Bài Viết Liên Quan

Chủ Đề