我有一个大多边形 (Pa
)。多边形内部有很多小“洞”,如图:
这里有几个洞的条件:
- 孔不能相互重叠
- 孔不能超出外多边形
- 但是,孔可以接触多边形的外边缘
如何高效获取剩余的多边形(或多边形列表)?最简单的方法(蛮力方法)是采用 Pa
,并通过减去孔逐渐计算剩余的多边形。虽然这个想法是可行的,但我怀疑有更高效的算法。
编辑:我不是在问如何执行多边形裁剪(或减法)算法!事实上,这是我会用蛮力做的事情。我想问除了多边形裁剪法(取主多边形然后逐渐裁剪出洞),还有其他更有效的方法吗?
最佳答案
这很难以一般方式做到。您可以在此处找到解决方案的源代码:
关于c# - 减法后计算剩余多边形的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4458567/