查找多个多边形的共同轮廓

时间:2011-07-10 11:49:23

标签: algorithm drawing polygon outline

我试图找到一种在多个多边形之间绘制公共轮廓的算法。 我的意思是在这张照片上:

two polygons to find outline

我们有两个矩形(在我的情况下,它们不是矩形,而是大多数角度为直角的多边形),我在图像的第二部分寻找像红色路径的共同轮廓。我认为最大的问题是找到新的点,我在图像的第二部分标记为黄色。 多边形永远不会交叉或接触自己。我以逆时针顺序存储多边形作为点。

我正在寻找一些我应该谷歌的线索,消息来源甚至是关键词,这可能会让我的任务变得更容易......

编辑:它类似于凸包,但看着不在顶点的边缘,黄色点可能在我看到它的边缘的连续处。

EDIT2:好的,我需要在多边形周围绘制一个给定大小的边框,但是这样的方式是,如果两个多边形比边框大小更近,它们将具有公共边框,这是两个边框的总和,没有'内部'它的一部分,这两个多边形将被视为一个形状。所以我试图找到这个红色多边形,用于在它周围画出这个边框。

2 个答案:

答案 0 :(得分:3)

首先将多边形顶点添加到多边形(黄色边框),方法是将所有边缘剪切到延伸到无限远的所有其他边缘(例如,将边缘变为无限直线)。

将新顶点连接到扩展边。这将为您提供多边形网格。

现在有了诀窍:

开始条件:

  • 选择最左上角的顶点,只能有一个!

  • 选择连接到找到1的顶点的最小斜率的边,并向右延伸。此边缘将始终位于最终多边形的周边。

<强>迭代:

  • 从当前边缘开始,按顺时针顺序沿其他边缘行走。 在执行此操作时,您将遇到新的顶点,这些顶点可能会连接到多个其他边。始终选择最逆时针方向并继续。这将始终使您保持最终多边形的周长。

结束条件:

  • 再次到达左上角时停止。

恭喜,您刚刚走过多边形的外边缘。

答案 1 :(得分:1)

我会在http://www.comp.nus.edu.sg/~tancl/Papers/DAS06/39-oyuanbuusu.pdf中寻找“最合适的边界框”,当然还有递归的参考书目。