python - 如何在 python 中绘制多边形?

标签 python geometry pygame

我看过 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)

我的错误是什么? 提前致谢。

最佳答案

点 (150, 100)、(300,200) 和 (450,300) 共线。它们形成的多边形实际上是一个非常平坦的三角形。

enter image description here

尝试改变其中一个点,使其不与其他两个点对齐。

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。

斜率都相等,所以点必须都在同一条线上。

关于python - 如何在 python 中绘制多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25018637/

相关文章:

python - 如果几个字符串之一在其他字符串中 : return a value + matching string, Python

javascript - 在一组垂直线段中找到所有不相交的交叉点

iOS 如何找到 CGRect 的较大尺寸?

python - Pygame Midi 多功能乐器

python - Pygame 按键声音

python - 在 python 中使用 paho mqtt 处理收到的消息

Python unpickle 一个对象里面有一个类实例

python - 使用 pandas read_csv 读取标题时跳过 `# ` 字符

geometry - 如何计算多个重叠直角多边形的面积?

python - 我的 pygame 角色在我移动时会留下痕迹