gpt4 book ai didi

algorithm - 碰撞检测复杂度
转载 作者:塔克拉玛干 更新时间:2023-11-03 03:45:06 32 4
gpt4 key购买 nike

我有大量的物体(首先是球)在空间中逐步移动,一次一个,并且不应重叠。目前,对于每一个 Action ,我都会检查是否与其他所有对象发生碰撞。 Several other questions here然而,处理这个问题时,我想到了一个看似简单的解决方案,但在这种情况下似乎并没有出现,我想知道为什么。

为什么不简单地保留所有对象的 2 个集合(对于 2D,或 3 个在三维中),分别按 x 和 y(和 z)坐标排序,并在每次移动时查找给定距离内的所有其他对象(这里的球直径)在每个维度上,只对两个(或所有 3 个)结果集中的对象进行实际碰撞检查?

我意识到这只适用于大小相同的对象,但也可以使用两倍数量的集合,按每个对象每个维度的 (1) 最高 (2) 最低坐标排序。与从 O(n)“成对检查”到“grid method”或“四叉树/八叉树”相比,为什么这不起作用,或者提供的改进少得多?我在这里看到这些排序集合的更新是昂贵的操作,但是使用例如一个 TreeSet(我的实现将在 Java 中)它应该仍然明显小于 O(n),对吗?

最佳答案

检查两个结果集中有哪些对象涉及查看平面两 strip 中的所有对象。这是一个更大的区域,因此涉及更多的对象,而不是四叉树让您立即缩小范围的封闭正方形。更多的对象意味着它更慢。

关于algorithm - 碰撞检测复杂度 <O(n²) : Simpler approach than grid, 四叉树,BSP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6139011/

32 4 0

Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com