3D Delaunay三角剖分:查找包含查询点的四面体

时间:2019-01-16 07:52:11

标签: interpolation computational-geometry vtk cgal delaunay

假设我已经从N个点中构建了3D delaunay三角剖分。现在我有了一个查询点,我需要找到包围查询点的三角剖分的四面体。如何以最快的方式做到这一点?我知道一般的octtree和kdtree方法,但是我希望有一种利用四面体不是任意的而是3D delaunay的结果的快速方法。

我可以使用VTK或CGAL或其他C ++库,并且代码应为C ++。

2 个答案:

答案 0 :(得分:1)

example显示了如何将locate()函数用于CGAL的3D三角剖分。如果您需要加快位置而不是加快施工速度,可以将Delaunay_triangulation_3的参数LP设置为CGAL::Fast_location

答案 1 :(得分:0)

提示:

在用于2D Delaunay的Green&Sibson方法中,他们通过从云的中心开始并沿三角剖分的边缘朝目标进行搜索,以寻找最近的邻居。对于均匀的点分布,每次搜索的费用为√N次操作。

我相信,该原理可以推广到四面体化,并且对应于成本√√N。不如log N好,但仍然很吸引人。如果查询点不是随机的而是保持本地化,则从上一个查询点开始可能会进一步减少查询时间。