在我的 wip 游戏中,我必须实现 Circle-Circle 碰撞。为了实现这一点,我只需计算它们之间的平方距离 Centers (x1-x2)² + (y1-y2)²
。如果这更小,那么它们的平方半径就会(r1+r2)²
发生碰撞。但是今天我看到了这个链接:
Circle-Circle collision
在这里,他们首先使用 AABB 碰撞来注意圆圈是否靠近。但我为什么要这样做?圆-圆碰撞是一种简单且并不昂贵的计算。当我首先使用 AABB 时,我至少会进行相同数量的计算,并且如果圆圈更接近。
让我解释:
我对每个圆圈进行 AABB 碰撞检测。所以我必须做n! / (n-2)!
计算。n = 要测试的圈数。对于每个 AABB 碰撞圆对,如果它们真的发生碰撞,我必须进行另一次计算。
如果没有 AABB 碰撞检测,我只进行n! / (n-2)!
计算,我认为这种计算不会那么昂贵。你怎么看?