我看过Craven教授关于在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)
我的错误是什么? 提前谢谢。
答案 0 :(得分:5)
点(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。
斜率都相等,因此所有点都必须位于同一条线上。