【发布时间】:2014-01-18 00:39:49
【问题描述】:
我正在实现一个四叉树结构,以简化碰撞代码。但我不确定这样做的最佳做法。目前,四叉树在设置过程中创建子树到预设的最大深度,然后我将对象插入其适当的树中,以用于对生成(实际的数学东西)。 但是,我听说过其他方法,它们仅在存储一定数量的对象时才生成子树。 我知道我的方法有空间开销,但在更新周期中计算速度可能更快。 处理它的最佳方法是什么?
【问题讨论】:
我正在实现一个四叉树结构,以简化碰撞代码。但我不确定这样做的最佳做法。目前,四叉树在设置过程中创建子树到预设的最大深度,然后我将对象插入其适当的树中,以用于对生成(实际的数学东西)。 但是,我听说过其他方法,它们仅在存储一定数量的对象时才生成子树。 我知道我的方法有空间开销,但在更新周期中计算速度可能更快。 处理它的最佳方法是什么?
【问题讨论】:
一种方法是在每个节点中存储 k 个元素,从一个跨越整个碰撞空间的父节点开始。插入元素 k+1 时,您将空间细分并将新元素放置在正确的象限中。
此外,您可以使用这种方法静态分配数据结构,假设您知道将使用的最大节点数,并且会有一些最大密度。这需要在应用程序的生命周期内分配一个固定的节点和元素数组,但它避免了代价高昂的动态分配,这应该是一个速度增益。
【讨论】: