我试图确定在以下情况下Object1是否会与Object2碰撞:
1)对象的边界框(使用有界框碰撞检测)
2)对象的速度
3)对象的当前位置(x,y坐标)
4)对象的方向(上、下、左或右)
为了形象化一些,想象一下物体在二维网格上移动,它们只能在该网格线上移动。
因此,根据上述信息,我需要一种高效但易于理解的算法来确定这些对象是否会发生碰撞。通过高效,我的意思是花费在计算上的时间最小化。伪代码或链接都可以。
1)对象的边界框(使用有界框碰撞检测)
2)对象的速度
3)对象的当前位置(x,y坐标)
4)对象的方向(上、下、左或右)
为了形象化一些,想象一下物体在二维网格上移动,它们只能在该网格线上移动。
因此,根据上述信息,我需要一种高效但易于理解的算法来确定这些对象是否会发生碰撞。通过高效,我的意思是花费在计算上的时间最小化。伪代码或链接都可以。
首先,在X轴上找到盒子将重叠的时间间隔。 其次,在Y轴上找到盒子将重叠的时间间隔。 最后,检查两个时间间隔是否重叠。如果是这样,那么两个时间间隔中共同存在的最早时间点就是它们相撞的时刻。
你最好的方法是找出:
然后测试两个时间范围是否相交。这将作为额外的奖励给出碰撞时间。
总体而言,这将是一个简单的常数时间操作。