Как нарисовать многоугольник в python?



Я смотрел видео профессора Крейвена о рисовании многоугольника в Python:



Https://www.youtube.com/watch?v=7qvsevlb5pg&list=PL1D91F4E6E79E73E1&index=22



Его видео очень полезны для начинающих.
Его объяснения очень полезны, как и примеры.
Когда я попробовал его пример:

pygame.draw.polygon(screen, black, [[100,100],[0,200],[200,200]], 5)


Это сработало просто отлично.
Однако, когда я попробовал что-то свое, это нарисовало только линию:



pygame.draw.polygon(screen, black, [[300,200],[150,100],[450,300]],6)


В чем моя ошибка?
Заранее спасибо.

769   1  

1 ответ:

Точки (150, 100), (300,200), и (450 300) коллинеарны. Многоугольник, который они образуют, фактически является чрезвычайно плоским треугольником.

Введите описание изображения здесь

Попробуйте изменить одну из точек так, чтобы она не совпадала с двумя другими.
pygame.draw.polygon(screen, black, [[300,400],[150,100],[450,300]],6)

В будущем, возможно, будет полезно проверить коллинеарность перед рисованием, чтобы вы знали, что получите реальную форму. Как правило, можно определить, является ли набор точек коллинеарными, сравнивая наклоны отрезков линий они формируются вместе.

Наклон линии AB равен (200-100)/(300-150) = 2/3.

Наклон линии BC равен (300-100)/(450-150) = 2/3.

Наклон линии AC равен (300-200)/(450-300) = 2/3.

Наклоны все равны,поэтому все точки должны лежать на одной прямой.

Comments

    Ничего не найдено.