二维空间索引问题:
你怎么称呼一个本质上是无限*四叉树的数据结构,其节点既不包含绝对坐标也不包含绝对尺度 - 其中每个节点的坐标系已经标准化为单位平方(0,0) - ( 1,1),其中顶级节点没有绝对固定?
当然,这是一个四叉树 - 但是四叉树的类型是什么? (有一个共同的名字吗?我已经看过文献中命名和定义的几十种类型的四叉树,但不是这一类。)
要渲染场景,您将获得一些起始节点(不一定是根),其大小(以像素为单位)以及它在屏幕上的位置。然后,您可以通过使用当前变换矩阵缩放其坐标来绘制节点内的所有对象,当您向下移动树时,您可以将其推入堆栈并减半。因此,节点的绝对坐标仅在渲染期间可用于临时工作变量,并且不包含在数据结构本身中。
如果节点内的对象移动到节点之外(例如,在单位正方形之外),则将其传递给父节点以重新分配给另一个节点。如果一个对象变得碎片化(例如,子弹击中一颗子弹),则较小的部分向下传递给子节点,子节点必须适当地缩放坐标以保持每个节点内的单位平方归一化。
与空间索引中使用的传统四叉树实现的关键区别在于,对象的坐标始终相对于包含它们的节点的坐标系。这种相对主义不仅适用于地位,也适用于规模。
*缺乏绝对坐标的无限;甚至双精度浮点坐标在用于绝对定位时也会限制位置和尺寸。
答案 0 :(得分:2)
是的,这是一个呃..“包裹网格嵌套四叉树”?如果您正在使用网格坐标,那么您只能使用最高和最低的int32值。
答案 1 :(得分:1)
你有一个四边形的网格。在整数坐标的每个方格之间,您似乎在网格的该部分上构建了一个四叉树。