四叉树Quadtrees在游戏领域应用

 维基百科介绍:

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

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

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

一些四元树的常用法
图像表示法

空间索引(Spatial index)。
在二维的有效率之碰撞侦测(collision detection)。
地形数据的隐藏面决定(Hidden surface determination)。
存储分散数据,诸如电子表格(spreadsheet)、或著一些矩阵计算的格式化信息。
多维场的解法。(计算流体力学, 电磁学)
生命游戏模拟程序。 


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

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

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

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

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

参考 js 版本 的   

 https://github.com/CodingTrain/QuadTree  ,   移植到 Unity中   
https://download.csdn.net/download/u010019717/10495980  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值