GKQuadtree
来源:互联网 发布:尚硅谷java视频教程 编辑:程序博客网 时间:2024/06/01 21:56
GKQuadtree
根据2D空间中的位置组织对象的数据结构。
概括
一个四叉树对象管理其最优的空间结构搜索,而不是像数组或字典这样的基本数据结构,四叉树可以很快地找到占据某一特定位置或区域的所有元素。四叉树分区策略将空间划分为每个级别的四个象限,如图1所示。当一个象限包含多个对象,树细分为更小的四象限区域,添加一个水平的树。
图1 一个实例四叉树的空间和逻辑排列
四叉树在有多个任务的游戏设计中非常实用,比如:
• 决定哪些游戏角色彼此足够接近以进行交互
• 决定一个大型游戏世界的哪一部分需要在给定的时间内进行处理
• GKOctree类型提供3D空间中等价于四叉树的方法,使用GKOctree类型来组织在3D世界中的对象。
• GKRTree提供在2D空间的不同索引算法,四叉树和R树(R-trees)在各种任务中平衡性能:四叉树可以更快地进行空间中均匀分布或那些频繁更新位置的计算,R树可以更快地在一个给定范围内进行搜索对象。
Topics
创建四叉树(Creating a Quadtree)
- initWithBoundingQuad:minimumCellSize:
根据指定维度创建四叉树。
+ quadtreeWithBoundingQuad:minimumCellSize:
根据指定维度创建四叉树。
添加和移除元素(Adding and Removing Elements)
- addElement:withPoint:
将对象添加到与2D空间中指定点相对应的树中。
- addElement:withQuad:
将对象添加到与2d空间指定区域相对应的树中。
- removeElement:withNode:
使用对其包含节点的引用从树中删除指定的对象。
- removeElement:
搜索指定的对象并将其从树中删除。
搜索元素(Searching for Elements)
- elementsAtPoint:
返回相应位置与指定点重叠的所有对象。
- elementsInQuad:
返回对应位置与指定区域重叠的所有对象。
常量(Constants)
GKQuad
由树寻址的轴对齐矩形的定义。
关系
继承
NSObject
阅读全文
0 0
- GKQuadtree
- BZOJ4170 极光 [二维线段树]
- 形象解释PID算法+PID算法源代码
- 深度学习硬件指南(号称最全)
- 解决“未能加载文件或程序集“netfx.force.conflicts”或它的某一个依赖项”
- 异常(一)
- GKQuadtree
- JSTL格式化日期
- PDF任务该怎样在ABBYY FineReader 中定义
- 第四周项目三 单链表应用
- WIFI模块ESP8266的使用指南(客户端和服务器两种模式建立)
- Android学习笔记9---Handler
- UVa-11292 Dragon of Loowater (贪心)
- 前端框架vue.js系列(1):基础及语法
- DPDK多线程初步解析