gpt4 book ai didi

collision-detection - 如何测试两个移动的2D定向边界框的碰撞?

转载 作者:行者123 更新时间:2023-12-04 08:09:30 25 4
gpt4 key购买 nike

OBB具有位置(x,y),速度(x,y)和方向(Matrix)。给定定期更新,OBB必须彼此冲突,返回被认为成功的举动的一部分。

我已经看过GPWiki上的Polygon测试-http://gpwiki.org/index.php/Polygon_Collision-但它不能解决移动对象或完全位于OBB内的对象的问题。

《实时碰撞检测》(Real Time Collision Detection)一书在第4章:边界体积中介绍了3D OBB,但是在3维中进行测试的方法要比在2D中复杂得多。

最佳答案

为了测试2个定向边界框之间的碰撞检测,我将使用分隔轴定理(SAT)。实际上,SAT可以用于任何两个凸形之间的碰撞检测。这种技术理解起来并不太复杂,并且具有合理的性能。
该定理可以轻松地扩展到3D。

编辑:

该算法尝试确定是否可以在两个对象之间拟合平面。如果存在这样的平面,则对象将被分离,并且无法相交。

要确定对象是否分离,只需将对象投影到平面的normal上,然后比较间隔并查看它们是否重叠即可。

因此,显然有无限多个平面可以容纳在两个分离的对象之间。但事实证明,您只需要测试少量飞机即可。

可以看出,对于盒子,要测试的分离平面是法线等于两个盒子的轴的平面。因此,对于2个盒子,您总共只需要测试4个分离平面。在这四个平面中,一旦找到一个将框分离的分离平面,便知道该框无法相交,并且会返回无碰撞标志。

如果这4个平面无法分开这些框,则该框必须是相交的,并且在那里发生碰撞。

关于collision-detection - 如何测试两个移动的2D定向边界框的碰撞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/764656/

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