在PyGame中将图形轮廓化为多边形

时间:2013-03-16 18:36:23

标签: python geometry pygame

我觉得这是不可能的(或者至少非常复杂),但我现在有一个生成的图形看起来像这样(借口我可怕的绘画技巧):

enter image description here

现在,我希望能够创建轮廓的多边形,我有所有节点的坐标,但不是交叉点。到目前为止,我能管理的最好的是礼品包装算法,它提供了多边形的粗略轮廓,而不是其他任何东西。

有没有人对我如何做到这一点有任何想法?

(我目前正在使用PyGame)

1 个答案:

答案 0 :(得分:1)

你想要找出交叉点发生的位置并在那里建立新的节点。

然后你想找到一个在外多边形上的边。我建议从无限远处运行随机射线,直到撞到边缘。

然后想象自己沿着那条边走,将左手放在边界上,将右手放在外面。开始走路。

当你点击一个节点时,你会转弯,这样你就不会越过任何边缘。也就是说,您开始以逆时针顺序遍历下一个边缘。 (一个简单的实现方法是使用atan2()按方向对它们进行排序。)

这是所有基本的高中代数和三角学,但如果这是你第一次编程这种性质的东西,它可能有点粗糙。不过,你会学到很多东西。

相关问题