【问题标题】:Split 2D quad by line逐行拆分二维四边形
【发布时间】: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


【解决方案1】:

a lot of effective algorithms可以通过矩形窗口剪裁一条线。

我已将Liang-Barski one 用于我的目的(查看“外部链接”部分以了解有效实施)

【讨论】:

    猜你喜欢
    • 2022-12-10
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 2011-07-12
    • 1970-01-01
    相关资源
    最近更新 更多