2013-03-16 88 views
1

我有一种感觉,这是不可能的(或至少是很复杂),但我现在有一个生成的图表,看起来是这样的(请原谅我糟糕的油漆技能):获取图形的轮廓为多边形的pygame的

现在

enter image description here

,我希望能够创建轮廓的多边形,我把所有的节点coordnates,但不交叉。目前我能够管理的最好的礼物包装算法,它比其他任何东西都给出了多边形的粗略轮廓。

没有人有任何想法,我怎么能去呢?

(我目前使用pygame的)

+0

如何将矩形的整个表面进行归一化并进行自定义填充?如果你不需要实际的点,这可能是最简单的方法 – 2013-03-16 19:24:38

+0

很好的建议,但我确实需要点,很遗憾。 :( – djcmm476 2013-03-16 21:27:01

回答

1

你会想找出在交叉路口发生做出新的节点出现。

那么你一定要找到一个边缘的上外多边形。我建议在无穷远处运行一个随机射线,直到碰到边缘。

然后想象自己沿着边走,让你的左手边界和你的右手外面。开始散步。

当你打一个结点,你打开,这样,你不跨越任何优势。也就是说,你开始以逆时针的顺序遍历下一个边。 (一个简单的实现方法是使用atan2()按方向对它们进行排序。)

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

+0

嗯,我认为这将是沿着这些线的东西。非常感谢! – djcmm476 2013-03-16 21:27:38

+0

这种类型的图形问题是否有一个名称?我一直在寻找,但大部分算法概述了一组点。 – docchang 2013-11-22 10:11:57