【发布时间】:2012-06-22 01:50:54
【问题描述】:
我目前正在通过大致执行以下操作来创建“邻域图”:
for every voxel
look at every other unseen voxel
check if neighbours
大致以 n 平方(减去 n)运行。对于一定数量的体素是可以接受的,但显然对于更大的列表会花费更多时间。
另一个简单的解决方案是将所有内容放入一个大的 3d 数组或 hashmap 中,这将在 O(n) 中运行,但会消耗更多内存。
有没有更快的方法?我似乎无法在 google 中输入正确的搜索字词...
【问题讨论】:
-
哈希方法需要的内存相对较少。这取决于您的实现语言,但大致相当于每点 5 或 6 个指针/整数。
-
如果你有一个由均匀分布的体素组成的 3d 数组,那么找到邻居是微不足道的(每个索引中的 +/- 1)。如果您当前将每个体素的一些信息存储在一个大的 1 维数组中,那么重塑为 3 维数组不会改变数据的大小。
标签: algorithm data-structures graph voxel neighbours