都是伪代码哈
tree
{
boundingbox
leftfowardup//children1
...7 chilren
maxDeep
}
一个深度限制,一个包围盒,8个孩子
那么需要构建,那就插入物体 物体包围盒是box
node_level_0检查,是否包围盒大于box,0层级特殊处理,0的包围盒小于box就直接加入0级,return了。
继续正常情况,物体包围盒小于0级包围盒。
那么就Try一下八个子树,那么分情况。
1 如果子树包围盒小于box,那么直接加入当前node,且不创建子树 return。
2 如果子树包围盒大于box,那么如果这个box和一个以上子树相交,则加入当前node,不创建子树,return,
如果只和一个子树相交或者被包含,该子树才被创建,进入下一层,直到情况1或者情况3触发,才被加入某个子树。
3 如果到最深层且包围盒小于这个子树包围盒,那么直接加入该子树,但如果包围盒大了 就是情况1,与多个相交就是情况2。
标签:box,小于,子树,return,加入,八叉树,基础知识,构建,包围 From: https://blog.51cto.com/u_11889343/6045861