python - 在Pygame中绘制五边形、六边形

标签 python algorithm pygame python-3.4

我正在尝试制作可以绘制五边形六边形等的函数。算法有问题,我应该将线条与 pygame.draw.line 进行比较吗?看起来围绕确定线坐标的工作太多了。有没有简单的方法来绘制它们?我也不知道另一个可以绘制这些东西的图书馆。我只知道 Pygame,还有其他的吗?

最佳答案

您可以使用线条 绘制它。您只需要使用简单的三角函数生成顶点列表。

像这样的(如果我没记错的话):

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)])

关于python - 在Pygame中绘制五边形、六边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29064259/

相关文章:

c++ - 计算半径为 R、尺寸为 D 的球体内的整数点

c# - 为什么线性探测仅适用于相对主要的步骤?

python - 如何使用 Pygame 使这个演示绘图游戏更新更快地绘制圆圈?

python - 将numpy数组转储为字符串的最快方法

python - Selenium 与 Chrome 一起工作,但不是 headless (headless)的 Chrome

对相似词(或短语)进行分组的算法

python - pygame 中动画的并行显示更新

python - 为什么 Pygame 不显示我的 pdf?

python - 在查询中多次使用 sqlalchemy.sql 的功能

python - Pylint:如何在没有后续 'suppressed-message' 废话的情况下干净地抑制事物?