所以说我们在3D中有一个描述空间的立方体。我们将这个立方体细分为8个不同的小立方体,这些立方体描述了空间的八分之一,我们继续这样做了很多次。
这是一棵树,其中根是完整空间,每个子节点是更高细分级别的子部分,最大分辨率。
,即第一级是完整空间,接下来是8个子空间,接下来是64个子空间......最多8 ^ n个子空间。
这些节点中的每一个都可以以两种状态之一存在,占用或空。空节点没有任何子节点,占用节点至少有一个非空子节点,除非它们是叶子。
我得到了一个最低分辨率级别的数组(最小的子空间,即叶子)。该数组包含被占叶的离散化(x,y,z)坐标。换句话说,在这个数组中只存在被占用的叶子,没有明确给出空叶子,所以如果在这个数组中找不到叶子,我们可以认为它是空的。
信息不以任何特定顺序给出,但每个叶子自我通过其(x,y,z)坐标识别它在3D空间中的位置。
使用此信息,我们希望构建描述的树。换句话说,我们想要创建一个八叶树,其中空叶子没有孩子。
我怎样才能以有效的方式构建提到的树?
答案 0 :(得分:1)
一种简单的方法是在最初空的八叉树中逐个插入叶子,并在你去的时候创建丢失的节点。
总成本将大致与叶子数乘以(平均)树高度成比例。