【问题标题】:Closest distance + vertices of two meshes最近距离+两个网格的顶点
【发布时间】:2014-07-28 13:04:15
【问题描述】:

我想找到定义它们之间最近距离的两个网格的两个顶点(每个网格 1 个顶点)。或者我猜这两个三角形会很好。

但是我不确定如何在 CGAL 的文档中搜索它,但我确信这可以通过一些现有工具(可能基于 3d 距离场和/或 AABB)来实现。能否请我提示(关键字/链接)要查找的内容?

我被指向Optimal DistancesCGAL 包,但这并不是我想要的,因为它输出距离和坐标,所以查找顶点 ID 是额外的计算开销。

我已经使用 CGAL 实现了碰撞检测,以使用 AABB 树在三角形汤中找到三角形 - 三角形交点。我想我应该以某种方式接近这一点,尽管现在一个简单的汤和我所有的对象三角形都行不通。

【问题讨论】:

    标签: graphics cgal


    【解决方案1】:

    找到的解决方案是这样的:

    CGAL 的Optimal Distances 包可以给出两个网格的凸包之间最近距离的近似值,而无需明确计算凸包。因此,可以获得这些船体之间的最短距离,以及位于它们上的 2 个点的坐标并定义该距离。

    然后这些坐标可以用作 kd-trees 中的搜索查询,其中包含网格的原始顶点,以便找到最近的顶点。

    如果一个网格是非凸的,CGAL 使用的外壳是非常近似的,因此凸分解可能是必要的。在这种情况下,必须检查每个凸出部分的距离,然后取最短距离。

    上面的结果会是这样的:

    enter link description here

    【讨论】:

      最近更新 更多