【发布时间】:2025-12-30 09:25:16
【问题描述】:
二维空间索引问题:
本质上是无限*四叉树的数据结构叫什么,其节点既不包含绝对坐标也不包含绝对尺度——其中每个节点的坐标系都已归一化为单位平方 (0,0)-( 1,1),其中顶层节点不是绝对固定的?
当然是四叉树——但它是什么类型的四叉树? (有没有一个通用名称?我在文献中看到了几十种类型的四叉树命名和定义,但不是这个特定的。)
要渲染一个场景,你会得到一些起始节点(不一定是根节点)、它的像素大小以及它在屏幕上的位置。然后,您通过使用当前变换矩阵缩放其坐标来绘制节点内的所有对象,当您沿着树向下时,您将其推入堆栈并减半。因此,节点的绝对坐标只能通过渲染期间的临时工作变量获得,并且不包含在数据结构本身中。
如果节点内的对象移动到节点之外(例如,在单位正方形之外),则将其传递给父节点以重新分配给另一个节点。如果一个物体变得碎片化(例如,一颗被子弹击中的小行星),较小的部分将传递给子节点,子节点必须适当地缩放坐标以保持每个节点内的单位平方归一化。
这里与空间索引中使用的传统四叉树实现的主要区别在于,对象的坐标始终相对于包含它们的节点的坐标系。这种相对主义不仅适用于位置,也适用于规模。
* 没有绝对坐标的无穷大;即使是双精度浮点坐标在用于绝对定位时也会限制位置和大小。
【问题讨论】:
标签: 2d coordinates spatial-index recursive-datastructures quadtree