我正在寻找一种算法,它将从一个简单的凹多边形中减去一个矩形并返回多边形的其余部分。如果矩形包围多边形,则余数为空。在大多数情况下,看起来至少有一条边将在矩形和多边形之间共享。从多边形中减去矩形
我一直在挖掘互联网,但我还没有找到一个好的主角。
有人能指出我正确的方向吗?
我正在寻找一种算法,它将从一个简单的凹多边形中减去一个矩形并返回多边形的其余部分。如果矩形包围多边形,则余数为空。在大多数情况下,看起来至少有一条边将在矩形和多边形之间共享。从多边形中减去矩形
我一直在挖掘互联网,但我还没有找到一个好的主角。
有人能指出我正确的方向吗?
这很简单:找到矩形和简单多边形的边界之间的交集并在那里剪切这些分段。这不需要空间搜索结构,因为多边形的四条边是一个常数因子,因此可以在线性时间内运行。
然后计算所有分段的约束Delaunay三角剖分并使用种子点来生长区域。合适地组合区域(简单多边形内的三角形减去矩形内的三角形减去外部的三角形,剩下的三角形是你的结果,边界边缘是结果多边形的边缘。如果答案是太短了。下图显示了这个想法。
一)这两个输入多边形
b)在CDT的(板缺)链段的插入
c)在生长区域
d)绿色区域之后减去红色区域
e)d区域的边界边缘。
我试图在[张贴在MathOverflow同样的问题(http://mathoverflow.net/questions/111296/subtract-rectangle-from-polygon/111323#111323)来回答。 –