最近距离+两个网格的顶点

时间:2014-07-28 13:04:16

标签: graphics cgal

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

但是我不确定如何在CGAL的文档中搜索此内容,我确信这对于某些现有工具(可能基于3d距离字段和/或AABB)是可行的)。我可以请一个关于要查找的内容的提示(关键字/链接)吗?

我已经指向了Optimal Distances CGAL包,但它并不完全是我想要的,因为它输出了距离和坐标,所以找到顶点ID是一个额外的计算开销。

我已经用CGAL实现了碰撞检测,使用AABB树在三角形汤中找到三角形 - 三角形交点。我想我应该以某种方式接近这一点,虽然现在一个简单的汤,所有我对象三角形都不能完成这项工作。

1 个答案:

答案 0 :(得分:1)

找到的解决方案是:

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

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

如果一个网格是非凸的,CGAL使用的船体非常近似,因此可能需要进行凸分解。在这种情况下,必须检查每个凸起部分的距离,然后采用最短距离。

上面会产生这样的结果:

enter link description here