我正在尝试使用Quad-Tree实现二维快速碰撞检测。
AFAIK,Quad-Tree将一个区域划分为4个子区域,分别是西北,东北,东南和西南。这种划分与正方形完美配合。但是,如果该区域是非方形矩形,该怎么办?在这种情况下,我们不能均匀地划分长边和短边,短边确定我们可以分割的距离。
我是对的吗?那意味着什么?
答案 0 :(得分:0)
简单地将感兴趣区域的边界框的宽度和高度的最大值作为四叉树的边长。
另一个解决方案:
我见过的两个四叉树实现使用了一个内部矩形,所以即使提供的根边界不是正方形,它也会用完。它们在每个细分步骤中划分边界的宽度和高度。
但请注意,有10种不同的四叉树类型。我说的是Rectangle Quadtrees。
一个实现显然使用边长除以2,因此对于非平方根边界不能正常工作。
然而,我仍然推荐我的第一句话,更好地使用正方形作为根界限。 这适用于所有四元树类型。