我有一种感觉,这是不可能的(或至少是很复杂),但我现在有一个生成的图表,看起来是这样的(请原谅我糟糕的油漆技能):获取图形的轮廓为多边形的pygame的
现在,我希望能够创建轮廓的多边形,我把所有的节点coordnates,但不交叉。目前我能够管理的最好的礼物包装算法,它比其他任何东西都给出了多边形的粗略轮廓。
没有人有任何想法,我怎么能去呢?
(我目前使用pygame的)
我有一种感觉,这是不可能的(或至少是很复杂),但我现在有一个生成的图表,看起来是这样的(请原谅我糟糕的油漆技能):获取图形的轮廓为多边形的pygame的
现在,我希望能够创建轮廓的多边形,我把所有的节点coordnates,但不交叉。目前我能够管理的最好的礼物包装算法,它比其他任何东西都给出了多边形的粗略轮廓。
没有人有任何想法,我怎么能去呢?
(我目前使用pygame的)
你会想找出在交叉路口发生做出新的节点出现。
那么你一定要找到一个边缘的上外多边形。我建议在无穷远处运行一个随机射线,直到碰到边缘。
然后想象自己沿着边走,让你的左手边界和你的右手外面。开始散步。
当你打一个结点,你打开,这样,你不跨越任何优势。也就是说,你开始以逆时针的顺序遍历下一个边。 (一个简单的实现方法是使用atan2()按方向对它们进行排序。)
这是所有基本的高中代数和三角函数,但如果这是您第一次编程此类任何内容,它可能有点粗糙性质。不过,你会学到很多东西。
如何将矩形的整个表面进行归一化并进行自定义填充?如果你不需要实际的点,这可能是最简单的方法 – 2013-03-16 19:24:38
很好的建议,但我确实需要点,很遗憾。 :( – djcmm476 2013-03-16 21:27:01