四叉树学习

自己学习四叉树总结

结构:

QuadTree:树

QuadTreeNode:树的节点

ITreeObj:树对象的接口

Detector:检测器

BoundsDetector:包围盒检测器

……

图片:

四叉树学习

功能实现结构大致如下:

对象添加:

添加的条件一般是节点完全包围和深度,如果这两个条件符合会再创建四象相的子节,不断递深下去,直到深度或四象相节点不能完合包围时停止

对象移除:

相比添加转为简单。移除并更新父节点的数量

对象更新:

这个较复杂,主要功能是在物体移动时,需要更新对应的节点中去

1.当前节点是否可以完全包含物体,如果不能转调用父节点处理

2.判断子节点是否存在,如果四象相子节点不存在且深度满足条件,那么创建子节点。

3.四象相子节点判断是否可以完全包围,如果可以跳出

4.子节点查找失败,那么就把对象加到自身节点中

下载:

工程是Unity2017.3 https://download.****.net/download/c332937586/12718923