Рисование Пентагона, шестиугольника в Pygame


Я пытаюсь создать функции, которые могут рисовать Пентагон шестиугольник и т. д. Беспокоясь об алгоритме, должен ли я сравнивать строки с pygame.draw.line ? Похоже, слишком много работы вокруг определения координат линий. Есть ли простой способ нарисовать их? Кроме того, я не знаю другой библиотеки, которая может рисовать такие вещи. Я знаю только Pygame, есть ли еще один ?

1 2

1 ответ:

Вы можете нарисовать его с помощью lines. Вам нужно только сгенерировать список вершин с помощью простой тригонометрии.

Что-то вроде этого (если я не ошибся):

def draw_ngon(Surface, color, n, radius, position):
    pi2 = 2 * 3.14

    for i in range(0, n):
        pygame.draw.line(Surface, color, position, (cos(i / n * pi2) * radius + position[0], sin(i / n * pi2) * radius + position[1]))

    return pygame.draw.lines(Surface,
          color,
          True,
          [(cos(i / n * pi2) * radius + position[0], sin(i / n * pi2) * radius + position[1]) for i in range(0, n)])