【发布时间】:2012-05-24 21:43:28
【问题描述】:
我正在使用this wikipedia article 中描述的技术构建四叉树。 我将坐标存储在 2 维或 3 维数组中。
boost::array<unsigned int, 2 /* 3 */> coord;
我需要一种方法来计算 z 顺序中下一个框的坐标。 它可以通过交错位来工作,增加一而不是去交错,但这会变得非常复杂。 我希望有一个类似于文章中 cmp_zorder(...) 方法的实现,它可以在不交错位的情况下工作。
【问题讨论】:
-
你到底想要什么? Z 序中与 (x, y) 相邻但没有交织和去交织的 (x', y')?
-
完全正确,有可能吗?
-
当然可以,但是我没有听说过(也找不到)任何技巧,所以我能想到的唯一方法是修改按位加法算法将进位添加到另一个坐标(进位in x 应该添加到 y,并且进位 y 应该添加到 x)。类似的技术可用于 3D Z 曲线。不过,这对我来说听起来并不是特别快。你对这种方式感兴趣吗?
-
是的,我很感兴趣,听起来像很多位操作
标签: c++ bit-manipulation quadtree octree