Python 在Pygame中绘制五边形、六边形
我正在尝试制作可以绘制五边形、六边形等的函数。在算法上有问题,我应该将这些线与Python 在Pygame中绘制五边形、六边形,python,algorithm,pygame,python-3.4,Python,Algorithm,Pygame,Python 3.4,我正在尝试制作可以绘制五边形、六边形等的函数。在算法上有问题,我应该将这些线与pygame.draw.line进行比较吗?看起来围绕确定线的坐标做的工作太多了。有没有一个简单的方法来画它们?我也不知道还有哪个图书馆能画这些东西。我只知道Pygame,还有别的吗?你可以用线条画它。您只需要使用简单的三角法生成顶点列表 类似这样的事情(如果我没有犯错误): 您可以使用pygame.draw.polygon(曲面、颜色、点列表)绘制多边形。在这种情况下,可以使用三角法生成顶点列表,并将其作为点列表参数
pygame.draw.line
进行比较吗?看起来围绕确定线的坐标做的工作太多了。有没有一个简单的方法来画它们?我也不知道还有哪个图书馆能画这些东西。我只知道Pygame,还有别的吗?你可以用线条画它。您只需要使用简单的三角法生成顶点列表
类似这样的事情(如果我没有犯错误):
您可以使用pygame.draw.polygon(曲面、颜色、点列表)
绘制多边形。在这种情况下,可以使用三角法生成顶点列表,并将其作为点列表
参数传递。下面是一个函数,用于绘制具有顶点\u计数
顶点的任何正多边形:
def draw_regular_polygon(surface, color, vertex_count, radius, position):
n, r = vertex_count, radius
x, y = position
pygame.draw.polygon(surface, color, [
(x + r * cos(2 * pi * i / n), y + r * sin(2 * pi * i / n))
for i in range(n)
])
您可以运行并查看此函数的运行情况,使用向上/向下箭头键更改顶点计数。这只是一个突然的灵感,因为我还在这里工作,但您是否尝试从图形的中心绘制所有内容?我在考虑一个函数,它接收点到中心的距离,然后用角度计算它们的位置。我在家的时候会仔细考虑,但也许它会给你带来新的想法。@GLHF我想是的,而且我刚刚为位置添加了额外的参数。来自math import*
或math.cos
math.sin
它正在工作,但我也想显示五角大楼内部的线条。你明白我的意思吗?@GLHF从中心到顶点的直线?这是一项出色的工作。希望我能把你的答案翻两遍,谢谢:)
def draw_regular_polygon(surface, color, vertex_count, radius, position):
n, r = vertex_count, radius
x, y = position
pygame.draw.polygon(surface, color, [
(x + r * cos(2 * pi * i / n), y + r * sin(2 * pi * i / n))
for i in range(n)
])