13 3d geometry distance spatial data-structures
我有一个3D pointcloud,我想从任意点p(它不一定是存储的pointcloud的一部分)有效地查询距离d内的所有点
查询看起来像
Pointcloud getAllPoints(Point p, float d);
Run Code Online (Sandbox Code Playgroud)
什么加速结构适合这个?范围树似乎仅适用于查询矩形体积,而不是球体体积(当然,我可以查询球体的边界框,然后整理距离大于d的所有顶点 - 但也许有更好的方法可以做到这个??)
谢谢!
根据Novelocrats的建议,我尝试定义结构的所需功能:
SearchStructure Create(Set<Point> cloud)
Set<Point> Query(SearchStructure S, Point p, float maxDistance)
SearchStructure Remove(Point p)
SearchStructure Insert(Point p)
SearchStructure Displace(Set<Point> displacement) //where each value describes an offsetVector to the currently present points
Run Code Online (Sandbox Code Playgroud)
通常,在n次查询之后,这些点会被取代,并且会进行一些(不是很多!)插入和删除.与所有点的边界框相比,偏移矢量非常小