Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Data structures 用于欧几里得三维数据查询的良好数据结构?_Data Structures_3d - Fatal编程技术网

Data structures 用于欧几里得三维数据查询的良好数据结构?

Data structures 用于欧几里得三维数据查询的良好数据结构?,data-structures,3d,Data Structures,3d,存储点云数据的好方法是什么,以使其适合于执行这两个查询之一的应用程序 距离(x,y,z)最近的(即最低欧氏距离)数据点 获取球体内的所有点,半径R围绕一个点(x,y,z) 该结构将只填充一次,但会读取多次。低内存占用会很好,因为我可能要处理大于700万点的数据集,但速度应该是首要考虑的问题。一个图书馆会很好,但如果在该领域的专业知识有限的情况下它是可行的,我不介意自己实现它 提前谢谢 A您得到的是O(log(n))最近邻,通常范围查询会很快 这里引用了很多库。我一个也没用过 你也可以看看。我在其

存储点云数据的好方法是什么,以使其适合于执行这两个查询之一的应用程序

  • 距离(x,y,z)最近的(即最低欧氏距离)数据点
  • 获取球体内的所有点,半径R围绕一个点(x,y,z)
  • 该结构将只填充一次,但会读取多次。低内存占用会很好,因为我可能要处理大于700万点的数据集,但速度应该是首要考虑的问题。一个图书馆会很好,但如果在该领域的专业知识有限的情况下它是可行的,我不介意自己实现它

    提前谢谢

    A您得到的是O(log(n))最近邻,通常范围查询会很快

    这里引用了很多库。我一个也没用过


    你也可以看看。我在其他方面也使用过CGAL,它速度相当快,非常全面,但是文档会让你喝酒

    数据结构中的决策很大一部分将取决于数据的空间组织。例如,高度聚集的数据在kd树中往往比均匀分布的数据具有不同的性能特征

    对于这两个查询都非常好

    在许多情况下也是一个很好的选择,并且可能更容易实现


    有许多库使用各种算法来实现这一点。搜索将发现许多有用的库。例如,我过去在这方面运气很好。

    wiki页面上有指向实现的链接,但我没有尝试过任何一个。kD树非常容易实现,特别是如果您没有添加和删除点(似乎您没有),ANN似乎很感兴趣,我也会看一看。谢谢@Xzhsh:顺便说一句,STANN是另一个好的。我认为他们甚至有一个ANN包装器,所以你可以用一个代码库尝试多种算法。。。