c# - 减法后计算剩余多边形的算法

标签 c# algorithm

我有一个大多边形 (Pa)。多边形内部有很多小“洞”,如图:

这里有几个洞的条件:

  1. 孔不能相互重叠
  2. 孔不能超出外多边形
  3. 但是,孔可以接触多边形的外边缘

如何高效获取剩余的多边形(或多边形列表)?最简单的方法(蛮力方法)是采用 Pa,并通过减去孔逐渐计算剩余的多边形。虽然这个想法是可行的,但我怀疑有更高效的算法。

编辑:我不是在问如何执行多边形裁剪(或减法)算法!事实上,这是我会用蛮力做的事情。我想问除了多边形裁剪法(取主多边形然后逐渐裁剪出洞),还有其他更有效的方法吗?

最佳答案

这很难以一般方式做到。您可以在此处找到解决方案的源代码:

General Polygon Clipper (GPC)

关于c# - 减法后计算剩余多边形的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4458567/

相关文章:

c# - 即使在 extern c 之后名称也被破坏

c - 通过一次删除一个字符来均衡字符串中的字符数

c++ - LeetCode #617 "Merge Two Binary Trees"使用 C++

c# - SQL连接错误或数据库表名错误

c# - WPF:将 ComboBox 数据绑定(bind)到 int 值

c# - 检测 SQL 数据库更改

c# - ASP.Net MVC 4 中的 SAML 2.0 作为 IDP 实现

java - 查找应该为每一行的一个参数至少定义一个值的记录

c# - 数码相机算法

algorithm - 解析带有转义符或定界符的嵌套 block 的最有效算法