四叉树Quadtrees在游戏领域应用

孙广东   2018.6.24

    维基百科介绍:

      四元树又称四叉树是一种树状数据结构,在每一个节点上会有四个子区块。四元树常应用于二维空间数据的分析与分类。 它将数据区分成为四个象限。数据范围可以是方形或矩形或其他任意形状。

所有的四元树法有共同之特点:

  • 可分解成为各自的区块
  • 每个区块都有节点容量。当节点达到最大容量时,节点分裂
  • 树状数据结构依造四元树法加以区分

一些四元树的常用法


四叉树来源于将正方形区域分成较小正方形的想法。所以他的应用倾向于 2D搜索或优化算法


当你沿着四叉树向下移动时,每个正方形被分成四个较小的正方形。

换一种角度在来看。 通过绘制显示每个节点的子节点的线条,  如果你专注于黑色线条,你可以看到它们形成了一个分支树状结构,每层都有四个分支。


我们可以使树的视图更加抽象,更接近我们用来表示它的数据结构,方法是将图的树部分展平成二维树图。


现在你可以看到四叉树作为一个数据结构并不是很特别 - 它只是一棵树,每个节点有四个子节点。


参考 js 版本 的   

 https://github.com/CodingTrain/QuadTree  ,   移植到 Unity中   

https://download.csdn.net/download/u010019717/10495980  


参考文章

HTML5实现3D和2D可视化QuadTree四叉树碰撞检测

[译]2D空间中使用四叉树Quadtree进行碰撞检测优化

Quadtree and Octree Culling Alternative          四叉树和八叉树剔除



猜你喜欢

转载自blog.csdn.net/u010019717/article/details/80789271