【发布时间】:2013-01-28 09:30:08
【问题描述】:
我发现许多实现都通过给定的线分割 多边形,但我只需要分割 Quad(具有 4 个顶点的矩形)。
是否有针对此任务优化的算法? 简单比性能更重要。
我缩小了 4 种交叉路口:
相邻
线路从一侧进入并从相邻一侧离开。
这将生成 1 个具有 3 点 的多边形和 1 个具有 5 点的多边形。
对面
线路从一侧进入并从另一侧离开。
这将生成 1 个具有 4 点 的多边形和 1 个具有 4 点的多边形。
对角线对面
线从一个角进入并从另一角离开。
这将生成 1 个具有 3 点 的多边形和 1 个具有 3 点 的多边形。
对角相邻
线从一个角落进入并从相邻的一侧离开。
这将生成 1 个具有 3 点 的多边形和 1 个具有 4 点的多边形。
但是到目前为止我无法想出一个简单的好算法。
谢谢!
【问题讨论】:
-
你有什么不满意的地方?
-
嗨,正如我之前提到的,我阅读的算法是为了处理广泛的案例场景而创建的。我只是想也许有一些专门为这种情况设计的简单算法。也许没有,我将不得不坚持使用其他算法。
-
我认为您不会比一般解决方案更有效率,因为您最终只会找到交点并生成 2 个顶点循环,边数无关紧要,并且明确不专门针对边长 4 可能会产生更简单的算法。
标签: geometry 2d polygon divide