Algorithm 从微小到巨大的物体空间分割/碰撞检测的最佳算法?

Algorithm 从微小到巨大的物体空间分割/碰撞检测的最佳算法?,algorithm,quadtree,Algorithm,Quadtree,我环顾四周,发现了10亿个问题、文章、研究、论文等,但我还没有真正弄明白或找到这个问题的答案 基本上,我只是想知道从1像素到屏幕本身大小的对象之间的空间分割/碰撞检测的最佳算法是什么。目前,我倾向于松散的四叉树 首先,看一看 这取决于你的要求。四叉树非常适合于高达100K条目的中小型数据集。如果这符合您的要求,则无需进一步阅读 然而,普通四叉树往往难以处理非常大或高度聚集(某些区域的高点密度)的数据集。它们也不是很容易实现的,因为对于较大的树,您可能会遇到精度问题(如果深入到树中,象限开始重叠或

我环顾四周,发现了10亿个问题、文章、研究、论文等,但我还没有真正弄明白或找到这个问题的答案

基本上,我只是想知道从1像素到屏幕本身大小的对象之间的空间分割/碰撞检测的最佳算法是什么。目前,我倾向于松散的四叉树

首先,看一看

这取决于你的要求。四叉树非常适合于高达100K条目的中小型数据集。如果这符合您的要求,则无需进一步阅读

然而,普通四叉树往往难以处理非常大或高度聚集(某些区域的高点密度)的数据集。它们也不是很容易实现的,因为对于较大的树,您可能会遇到精度问题(如果深入到树中,象限开始重叠或有间隙,则将数字除以230倍)。否则,它们相对容易实现

我发现我的方法非常有用,它有点类似于四叉树,但没有精度问题,并且固有的深度有限。根据我的经验,它相当快,特别是如果您使用一个小的结果集进行窗口查询(这基本上就是您在碰撞检测中所做的)。不幸的是,它不是那么容易实现。上面的链接引用了我自己的java实现,但是DOC也包含C++版本的链接。
您还可以尝试“qthypercube2”,它是一个四叉树,包含一些PH树的导航技术。当前的1.6版本对于极端数据集存在一些精度问题,但是您会发现它非常快,并且精度问题的解决方案已经在准备中

使用动态AABB树进行实时宽相位碰撞,因此值得考虑。这实际上是我的松散四叉树亚军。也许我会再看一看,阿加尼确实看到了关于高效数据结构的第一个链接,松散的四叉树看起来确实适用于非常大到非常小的对象(尽管如果你真的检查了链接中的动画gif,你会注意到碰撞中实际上有很多非常明显的错误)。那些其他的链接看起来很有趣,我明天还要看一看。谢谢