我正在工作的工具,需要一个三维“体素基础”引擎。我的意思是,它将涉及从网格中添加和删除多维数据集。为了管理这些多维数据集,我需要一个允许快速插入和删除的数据结构。我在and树和octree中看到的问题是,由于这些操作,它们似乎经常需要重新创建(或者至少是重新平衡)。
在我加入之前,我想了解一下解决这一问题的最佳方法。
更多细节:
我想最终的问题是,以一种能够处理频繁插入和删除的方式来管理本质上是3D点数据的最佳方法是什么?
(不,我不是在制作“我的世界”)
发布于 2013-08-01 12:11:24
八叉树易于动态更新。通常,树是根据每片叶子上/下的种群数进行细化的:
这两个操作都是局部的,只遍历树的高度,这是分布良好的点集的O(log(n))
。
另一方面,KD-树不容易动态更新,因为它们的结构基于完整点集的分布。
还有其他一些支持动态更新的空间数据结构-- R-树、Delaunay三角等等,但还不清楚它们是否能提供比八叉树更好的性能。我不知道有任何空间结构比O(log(n))
动态查询支持得更好。
希望这能有所帮助。
https://stackoverflow.com/questions/17990004
复制相似问题