我觉得这是不可能的(或者至少非常复杂),但我现在有一个生成的图形看起来像这样(借口我可怕的绘画技巧):
现在,我希望能够创建轮廓的多边形,我有所有节点的坐标,但不是交叉点。到目前为止,我能管理的最好的是礼品包装算法,它提供了多边形的粗略轮廓,而不是其他任何东西。
有没有人对我如何做到这一点有任何想法?
(我目前正在使用PyGame)
答案 0 :(得分:1)
你想要找出交叉点发生的位置并在那里建立新的节点。
然后你想找到一个在外多边形上的边。我建议从无限远处运行随机射线,直到撞到边缘。
然后想象自己沿着那条边走,将左手放在边界上,将右手放在外面。开始走路。
当你点击一个节点时,你会转弯,这样你就不会越过任何边缘。也就是说,您开始以逆时针顺序遍历下一个边缘。 (一个简单的实现方法是使用atan2()按方向对它们进行排序。)
这是所有基本的高中代数和三角学,但如果这是你第一次编程这种性质的东西,它可能有点粗糙。不过,你会学到很多东西。