八叉树(Octree)

转载自:http://www.cnblogs.com/21207-iHome/p/7098000.html

八叉树(Octree)是一种用于描述三维空间的树状数据结构。想象一个立方体,我们最少可以切成多少个相同等分的小立方体?答案就是8个。再想象我们有一个房间,房间里某个角落藏着一枚金币,我们想很快的把金币找出来,怎么找最高效?我们可以把房间当成一个立方体,先切成八个小立方体,然后排除掉没有放任何东西的小立方体,再把有可能藏金币的小立方体继续切八等份….如此下去,平均在Log8(房间内的所有物品数)的时间内就可找到金币。因此,八叉树就是用在3D空间中的场景管理,可以很快地知道物体在3D场景中的位置,或侦测与其它物体是否有碰撞以及是否在可视范围内。

八叉树的作用

八叉树的结构决定了八叉树具有的功能,由于每个元素都在树结构中,可以快速定位到各个元素,并且时间复杂度很小。可以用来碰撞检测、邻域检索、空间变化检测、压缩等功能。

优点,使用八叉树可以快速进行三维目标的集合运算,如交、并、补、差等,亦可快速进行最邻近区域或点的搜索。

缺点,存储空间消耗。

å¨è¿éæå¥å¾çæè¿°

你可能感兴趣的:(八叉树(Octree))