可以使用距离函数平衡未排序的二叉树吗?

时间:2014-06-17 21:13:41

标签: binary-tree collision-detection tree-balancing

我有以下理论问题:
我在三维空间中有n个长方体。 它们与坐标系对齐,因此可以通过点(x,y,z)和尺寸(dimX,dimY,dimZ)描述一个长方体。 我想以一种方式组织这些长方体,我能够检查新插入的长方体是否与现有的一个(碰撞检测)相交。 为此,我决定使用分层边界框。 总而言之,我有一个边界体积的二叉树结构。 然后通过递归地确定到两个孩子的距离(=两个长方体的两个中心之间的距离)并插入具有最小距离的路径来完成插入。 碰撞检测的工作原理类似,但我们采用与给定长方体相交的子路径中的所有边界体积 棘手的部分是,如果一些长方体彼此非常接近而另一些长距离很远,如何平衡这棵树以获得更好的性能。 到目前为止,我发现无法使用例如一个AVL树因为那时我必须能够以某种方式比较两个长方体,这不会破坏碰撞检测所依赖的条件。
P.S。:我知道有库可以做到这一点,但我想了解碰撞检测的原理,例如:在游戏中详细介绍,因此我希望自己实现这一点。

1 个答案:

答案 0 :(得分:0)

我现在尝试使用空格分区而不是对象分区。这不是我想要做的,但我发现了更多有用的信息,例如:https://en.wikipedia.org/wiki/Kd-tree
有了这些信息,就应该可以实现它。