【问题标题】:3D Delaunay triangulation: find tetrahedron enclosing a query point3D Delaunay 三角剖分:查找包围查询点的四面体
【发布时间】:2019-06-10 06:25:59
【问题描述】:
假设我用 N 个点构建了一个 3D delaunay 三角剖分。现在我有一个查询点,我需要找到包含查询点的三角剖分的四面体。如何以最快的方式做到这一点?我知道一般的 octtree 和 kdtree 方法,但我希望有一种快速的方法可以利用四面体不是任意的,而是 3D delaunay 的结果。
我可以使用 VTK 或 CGAL 或其他 C++ 库,代码应该是 C++。
【问题讨论】:
标签:
interpolation
computational-geometry
vtk
cgal
delaunay
【解决方案2】:
提示:
在二维 Delaunay 的 Green & Sibson 方法中,他们通过从云的中心开始并沿着三角剖分的边缘朝向目标来实现对最近邻居的搜索。对于均匀的点分布,这会导致每次搜索需要 √N 次操作。
我相信这个原理可以推广到四面体,并且对应于成本³√N。不如 log N 好,但无论如何都很有吸引力。如果查询点不是随机的而是局部的,从上一个点开始可能会进一步减少查询时间。