【问题标题】:Checking which triangles intersect a convex hull检查哪些三角形与凸包相交
【发布时间】:2020-03-27 12:58:29
【问题描述】:

我有一堆 2D 三角形(即在 R2 中),以及一个 2D 凸包(表示为一组线性约束),我需要检查其中哪些三角形与凸包相交。有什么算法可以做到这一点?

在稍后阶段,我可能还需要将问题推广到比 2D 更高的维度(即,在 Rd 中的一组单纯形中,检查其中哪些与凸包相交Rd),所以如果你知道一种可以处理一般情况的算法,那也很好。

【问题讨论】:

    标签: algorithm computational-geometry intersection


    【解决方案1】:

    您可以分两步解决二维问题:

    如果您需要对许多三角形执行此操作,则可以将外壳沿轴(例如 X)分解为两个单调链,然后通过二分搜索找到外壳和每个三角形的重叠范围。这会将时间降低到 O(Log N + K),其中 K 是与三角形 X 重叠的船体的平均边数。

    【讨论】:

    • 谢谢!你知道这种方法是否已经发表在我可以参考的任何论文中吗?我要自己写一篇论文。
    • 等一下;我想我找到了一个来源(虽然不是原来的):Computational Geometry in C (Second Edition) at page 253
    猜你喜欢
    • 2016-05-17
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    • 2015-11-21
    相关资源
    最近更新 更多