我试图找到一种在多个多边形之间绘制公共轮廓的算法。
我的意思就像这张照片上的那样:
我们有两个矩形(在我的例子中,它们不是矩形,而是大多数角度为直角的多边形),我正在寻找共同的轮廓,例如图像第二部分上的红色路径。我认为最大的问题是找到新的点,我在图像的第二部分将其标记为黄色。
多边形永远不会相交或接触自身。我按逆时针顺序将多边形存储为点。
我正在寻找一些线索、来源,甚至是我应该在谷歌上搜索的关键词,这可能会让我的任务变得更容易......
编辑:它类似于凸包,但看边缘而不是顶点,当我看它时,黄点可能位于边缘的延续上。
编辑2:好的,我需要在多边形周围绘制给定大小的边框,但是这样的话,如果两个多边形比边框大小更接近,它们将具有公共边框,这是两个边框的总和,没有“内部”部分它和这两个多边形将被视为一个形状。所以我试图找到这个红色多边形,它将用于在其周围绘制边框。
首先向多边形(黄色的)添加额外的顶点,方法是将所有边与延伸到无穷大的所有其他边一起剪切(例如,将边变成无限线)。
将新顶点连接到延伸边。这将为您提供一个多边形网格。
现在技巧来了:
启动条件:
迭代:
- 从当前边缘开始,按顺时针顺序沿着其他边缘行走。
执行此操作时,您将遇到新的顶点,并且这些顶点可能连接到多个其他边。始终选择最逆时针方向的一个并继续。这将使您始终保持在最终多边形的周长内。
结束条件:
恭喜,您刚刚绕着多边形的外边缘走了一圈。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)