如何在Python中绘制多边形?
我看了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)
我哪里出错了呢? 提前谢谢你。
1 个回答
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。
因为这些斜率都是相等的,所以这些点一定都在同一条直线上。