如何有效地存储四叉树中的游戏对象

时间:2013-12-31 03:16:46

标签: c++ quadtree

我正在实现四叉树结构,以简化碰撞代码。但我不确定这样做的最佳做法。目前,四叉树在设置期间创建子树到预设的最大深度,然后我将对象插入到其适当的树中,用于生成对(实际的数学内容)。 但是,我听说过其他方法,只有在存储一定数量的对象时才生成子树。 我知道我的方法有空间开销,但在更新周期中可能计算速度更快。 处理它的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

一种方法是在每个节点中存储k个元素,从跨越整个冲突空间的一个父节点开始。插入元素k + 1时,您可以细分空间并将新元素放在正确的象限中。

此外,您可以使用此方法静态分配数据结构,假设您知道将使用的最大节点数,并且将存在一些最大密度。这需要在应用程序的生命周期内分配固定的节点和元素阵列,但它避免了昂贵的动态分配,这应该是速度增益。