如何测试两个移动的2d定向边界框的碰撞?

Mic*_*bbé 5 collision-detection

OBB具有位置(x,y),速度(x,y)和方向(矩阵).给定定期更新,OBB必须相互冲突,返回被认为成功的移动部分.

我查看了GPWiki上的Polygon测试 - http://gpwiki.org/index.php/Polygon_Collision - 但它没有考虑移动对象或完全在OBB中的对象.

"实时碰撞检测"一书涵盖了第4章:边界体积中的3D OBB,但3维测试方法明显比2D更复杂.

Joh*_*ood -1

你说的是 2d,但也提到 3d 更复杂。对于碰撞检测,您基本上想要测试两个形状是否彼此相交。在 2D 中,带有边界框,这些是矩形。您需要使用一种算法来查看矩形是否相交,并检查一个矩形是否完全包含在另一个矩形中(对简单算法进行 3 次测试)。对于 3d,这些是立方体。一样。查看这个对象与对象相交的矩阵并找到您想要的。检查对象本身的交叉点,并且其中一个对象完全包含在另一个对象内。

此过程不仅可以扩展到边界框,还可以扩展到边界球体或凸边界壳、多边形或完整 3D 对象中的实际对象本身。最终的结果是,随着物体在空间和时间中前进,它们的表面是否发生碰撞,或者它们是否在彼此的内部。如果您的粒度太粗,并且在您正在建模的情况下,它们应该发生碰撞,但它们最终会相互移动,您应该进行额外的光线边界相交测试,以查看是否存在某个中心加权点一个对象与另一个对象的边界相交。