Làm thế nào bạn có thể vẽ một đa giác trong python?

Như chúng ta đã học trong thời gian chờ đợi, vẽ từng cọc bằng một câu lệnh riêng không phải là cách tốt nhất để vẽ bản vẽ này. Một chương trình linh hoạt hơn sẽ thu được bằng cách vẽ các cọc trong một vòng lặp. Hãy xem cách chúng ta nên vẽ một đa giác [một hình lục giác được biểu thị bằng một hình lục giác], để có thể dễ dàng vẽ cùng một đa giác ở những nơi khác

Chắc chắn sẽ hữu ích khi giới thiệu một điểm chính [neo], liên quan đến điểm mà tất cả các đỉnh đa giác sẽ được biểu thị. Trong trường hợp hàng rào, các đỉnh của cọc đầu tiên là [[20, 80], [30, 70], [40, 80], [40, 270], [20, 270]]. Chúng ta có thể chọn điểm được chỉ định đầu tiên [20, 80] cho điểm neo và biểu thị các điểm khác bằng cách sử dụng tọa độ của điểm đầu tiên. Vì vậy, chúng tôi nhận được rằng các đỉnh của một picket là [[x, y], [x + 10, y-10], [x + 20, y], [x + 20, y + 190], [x, y + . Bằng cách đặt x = 20, y = 80, chúng ta có được tọa độ của cọc đầu tiên trong hàng rào và bằng cách tăng x liên tiếp lên 40 mỗi lần, chúng ta có thể nhận được các cọc khác

y = 80
for x in range[20, 300, 40]:
    pg.draw.polygon[canvas, pg.Color['brown'], [[x, y], [x + 10, y-10], [x + 20, y], [x + 20, y+190], [x, y+190]]]

Vì tất cả các cọc đều có cùng độ cao, nên tọa độ y của neo không thay đổi, vì vậy chúng tôi thậm chí không cần phải giới thiệu nó [chúng tôi sẽ cần giới thiệu tọa độ y nếu một số cọc nằm trên các cọc khác]. Điều này có nghĩa là trong trường hợp này, chúng ta có thể viết mã trước đó đơn giản hơn một chút

for x in range[20, 300, 40]:
    pg.draw.polygon[canvas, pg.Color['brown'], [[x, 80], [x + 10, 70], [x + 20, 80], [x + 20, 270], [x, 270]]]

Có thể có nhiều biến thể khác nhau của ý tưởng cơ bản này. Ví dụ: nếu ban đầu chúng ta tạo một danh sách các đỉnh đa giác [đối với cọc đầu tiên], chúng ta có thể tạo một danh sách các đỉnh bị dịch chuyển theo một số cách

Chúng ta có thể tính tọa độ của các đỉnh bị dịch chuyển trong một vòng lặp bổ sung

picket = [[0, 0], [10, -10], [20, 0], [20, 190], [0, 190]]
y0 = 80
for x0 in range[20, 300, 40]:
    displaced_picket = []
    for x, y in picket:
        displaced_picket.append[[x+x0, y+y0]]
    pg.draw.polygon[canvas, color, displaced_picket]

Chúng ta có thể giới thiệu một hàm để vẽ một đa giác đã cho tại một vị trí nhất định và tạo danh sách các đỉnh bị thay thế trong hàm

def draw_polygon[points, color, x0, y0]:
    displaced_points = []
    for x, y in points:
        displaced_points.append[[x+x0, y+y0]]
    pg.draw.polygon[canvas, color, displaced_points]

picket = [[0, 0], [10, -10], [20, 0], [20, 190], [0, 190]]
for x0 in range[20, 300, 40]:
    draw_polygon[picket, pg.Color['brown'], x0, 80]

Mỗi trong số hai cách tiếp cận này có thể thay thế bảy lệnh gọi đến pg. vẽ tranh. hàm đa giác trong ví dụ ban đầu đã cho và mỗi cái tốt hơn là vẽ các tệp đính kèm bằng các lệnh riêng biệt. Sử dụng hàm này sẽ cho mã dài hơn một chút, nhưng nó có ưu điểm là có thể sử dụng chính xác cùng một hàm mà không cần sửa đổi để vẽ bất kỳ đa giác nào ở vị trí mới

Hãy thử một hoặc cả hai thay đổi được đề xuất cho chương trình ở trên, rồi sử dụng một trong các phương pháp này để giải quyết các tác vụ sau

Nhiệm vụ tập thể dục

Nhiệm vụ - hình bát giác

Viết chương trình vẽ các hình bát giác như trong ví dụ [click vào nút “Play task”]

Chức năng vẽ đa giác tương tự như trước. Sự khác biệt duy nhất là trong đó, pg. vẽ tranh. hàm đa giác được gọi hai lần. một lần cho phần bên trong của đa giác và lần khác cho các cạnh

Các tọa độ của hình bát giác cũng được đưa ra, nó vẫn còn để thêm một cuộc gọi đến chức năng vẽ bên trong một vòng lặp kép. Cả x và y đều bắt đầu từ giá trị 0 và tăng dần theo các bước 48 [48 là “chiều rộng” và “chiều cao” của hình bát giác]

Nhiệm vụ - mũi tên

Hoàn thành chương trình sau để vẽ hình đã cho [bạn có thể xem hình bằng cách nhấn vào nút “Play task”]

Mũi tên trắng chỉ sang trái và mũi tên đen chỉ sang phải. Khi các mũi tên đen và trắng bao phủ hoàn toàn hình ảnh với nhau, lưu ý rằng chỉ cần vẽ các mũi tên đen [trên nền trắng] là đủ

Nhiệm vụ - một đàn hươu cao cổ

Đã cho tọa độ các đỉnh của đa giác biểu diễn con hươu cao cổ. Hoàn thành chương trình bằng cách vẽ vài con hươu cao cổ [dùng hàm draw_polygon]. Lập danh sách các vị trí hươu cao cổ theo ý muốn

Các đa giác đơn giản có thể được vẽ trên canvas bằng cách sử dụng phương thức canvas drawPolygon[]. Đa giác đơn là hình khép kín có ba đỉnh trở lên trong đó các đỉnh kề nhau được nối với nhau bằng các đoạn thẳng. Một đỉnh được xác định bởi tọa độ x và y của vị trí của nó trên canvas

Để vẽ một đa giác, bạn chuyển tập hợp các đỉnh xác định đa giác cho phương thức dưới dạng một chuỗi các đối số

Tranh sơn dầu. drawPolygon[x1, y1, x2, y2, x3, y3, x4, y4, x5, y5]

trong đó các cặp tọa độ x và y của mỗi đỉnh được truyền lần lượt. Do đó, tọa độ x và y của đỉnh đầu tiên được truyền trước, tiếp theo là tọa độ của đỉnh thứ hai, v.v. Ví dụ, lệnh

Tranh sơn dầu. drawPolygon[200, 100, 50, 200, 150, 300, 250, 300, 350, 200]

vẽ một đa giác 5 cạnh trên canvas được xác định bởi các đỉnh [200, 100], [50, 200], [150, 300], [250, 300], [350, 200]

Thay vào đó, bạn có thể lưu trữ các tọa độ trong một danh sách hoặc bộ dữ liệu và chuyển cấu trúc cho phương thức thay vì các tọa độ riêng lẻ

Tranh sơn dầu. drawPolygon[dãy]

Các đỉnh phải được lưu trữ trong danh sách hoặc bộ dữ liệu theo cùng thứ tự mà chúng sẽ được chuyển đến phương thức dưới dạng một chuỗi tọa độ

samplePoly = [200, 100, 50, 200, 150, 300, 250, 300, 350, 200]
canvas. drawPolygon[samplePoly]

Cảnh báo

Vì một đa giác được xác định bởi ít nhất 3 đỉnh nên bạn phải truyền ít nhất 6 tọa độ cho phương thức drawPolygon[] và tổng số tọa độ phải là một số chẵn

Đa giác trong Python là gì?

Đa giác là gói Python xử lý các hình đa giác ở dạng 2D . Nó chứa các liên kết Python cho gpc, Thư viện cắt đa giác chung tuyệt vời của Alan Murta và một số tiện ích mở rộng được viết bằng C và Python thuần túy. Với Đa giác, bạn có thể xử lý các hình đa giác phức tạp trong Python theo cách rất trực quan.

Chúng ta có thể vẽ hình bằng Python không?

Rùa là một tính năng của Python giống như một bảng vẽ, cho phép chúng ta ra lệnh cho một con rùa vẽ khắp nơi trên đó. Chúng ta có thể sử dụng nhiều chức năng rùa có thể di chuyển rùa xung quanh

Công cụ nào được sử dụng để vẽ một đa giác vẽ?

Công cụ PolyStar cho phép bạn vẽ nhanh các đa giác đều có tối đa 32 cạnh. Bạn có thể tìm thấy công cụ PolyStar được lồng với công cụ Rectangle.

Chủ Đề