Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 用树叶做一棵华侨城树? 安装程序_Algorithm_Graphics_Tree_Geometry_Computational Geometry - Fatal编程技术网

Algorithm 用树叶做一棵华侨城树? 安装程序

Algorithm 用树叶做一棵华侨城树? 安装程序,algorithm,graphics,tree,geometry,computational-geometry,Algorithm,Graphics,Tree,Geometry,Computational Geometry,假设我们有一个三维立方体,它描述了一个空间。我们将这个立方体细分为8个不同的小立方体,它们描述了空间的八分之一,我们进行了多次这样的操作 这是一棵树,其中根是整个空间,每个子节点是更高细分级别的一个子节,最高分辨率为 i、 第一层是完整空间,第二层是8个子空间,第二层是64个子空间。。。最多8^n子空间 这些节点中的每一个都可以存在于两种状态中的一种,即已占用或为空。空节点没有任何子节点,被占用节点至少有一个非空子节点,除非它们是叶 问题 我得到了一个最低分辨率级别的数组(最小的子空间,即叶子)

假设我们有一个三维立方体,它描述了一个空间。我们将这个立方体细分为8个不同的小立方体,它们描述了空间的八分之一,我们进行了多次这样的操作

这是一棵树,其中根是整个空间,每个子节点是更高细分级别的一个子节,最高分辨率为

i、 第一层是完整空间,第二层是8个子空间,第二层是64个子空间。。。最多8^n子空间

这些节点中的每一个都可以存在于两种状态中的一种,即已占用或为空。空节点没有任何子节点,被占用节点至少有一个非空子节点,除非它们是叶

问题 我得到了一个最低分辨率级别的数组(最小的子空间,即叶子)。此数组包含被占用树叶的离散(x、y、z)坐标。换句话说,这个数组中只存在被占用的叶,空叶不会显式给出,所以如果在这个数组中找不到叶,我们可以假设它是空的

信息不是以任何特定的顺序给出的,但是每个叶子通过其(x,y,z)坐标自识别其在三维空间中的位置

利用这些信息,我们想要构造所描述的树。换句话说,我们想要创建一个oct树,其中空叶子没有子元素


如何以高效的方式构建上述树?

一种简单的方法是将叶子一个接一个地插入初始为空的八叉树中,并在运行时创建缺失的节点

总成本大致与树叶数量乘以(平均)树高成正比