algorithm - 二维空间对象的高效数据结构

标签 algorithm data-structures 2d complexity-theory collision-detection

我有一个包含对象的二维空间,每个对象都有坐标向量和一个相对于他的坐标的顶点数组,现在我需要一种存储对象的有效方法,这个存储应该能够添加和删除对象,还有最重要的部分是碰撞检测:

我想得到一个有机会碰撞的对象列表(近邻等),应该快速简单地在大约

O([具有碰撞机会的对象数量] * log([所有对象的数量])) 这样当没有接近的对象时它应该在 O( 1) 而不是仅遍历 O(n) 中的所有对象的蛮力方式。

有什么不明白的就问。

也许您知道有关该主题的一些链接或任何好的想法。

谢谢。

最佳答案

你可以使用 quadtree为此检查附近的所有物体。

关于algorithm - 二维空间对象的高效数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6109833/

相关文章:

ios - 比较 Swift 中两个元组列表的重复项

javascript - 2D变换,为什么会出现这种行为

java - 将 2D 屏幕坐标取消投影到 3D 世界坐标

c++ - 如何修复使用变量初始化数组时的错误?

arrays - 根据匿名哈希数组中的另一个值直接访问值

data-structures - Redis在键vs json中嵌入值

c++ - 使用 Tiles 检查 2D 平台游戏中的碰撞

从一组点构建图表的算法

判断链表是否存在环路的算法

java - Java 中的 Coreman MergeSort 实现没有产生正确的输出