树(简单应用-四叉树).pptVIP

  • 14
  • 0
  • 约3.11千字
  • 约 27页
  • 2017-06-03 发布于北京
  • 举报
树的简单应用 四叉树 问题提出 请看这幅图 问题 在上面的这幅图中,总共有1000个小球在做随机移动。如何检测其两两之间是否相撞? 用两重循环,将每个小球取出做检测,如果有1000个小球,没有优化的情况下意味着每帧要做1000 * 1000 = 1000000次碰撞检测,效率低了点! 那么怎样解决这个问题? 四叉树 四叉树是一种树状数据结构在每一个节点上会有四个子区块. 四叉树常应用于二维空间资料的分析与分类. 将资料区分成为四个象限. 资料范围可以是方形或矩形或其他任意形状 这种数据结构是由 拉斐尔·芬科尔(Raphael Finkel) 与 J.L. Bentley 在1974年发展出来 . 类似的资料分割方法也称为 Q-tree. 所有的四叉树有共同之特点: 可分解成为各自的区块 每一个区块可持续分解直到资料无法分解为止 树状数据结构依造四叉树法加以区分 如下图 在游戏中应用四叉树 为什么在游戏中我们要用4叉树代替一般的遍历查找呢?它的优越性主要在于能在大规模对象队列中快速的查找到你想要的内容。其实现的原理是分治,把游戏中的对象按照一定的规则划分成一小块一小块有组织的集合,这样就把大规模的问题划分成遍历每一小块区域的问题,从而提高了速度。 下面我们采用四叉树来解决前面所提到的问题。 在使用四叉树之前,一种方法是事先在内存中把四叉树建好,其创建的原则是屏幕区域按照坐标系划分成四

文档评论(0)

1亿VIP精品文档

相关文档