查找2D平面上的2个对象是否会发生碰撞的算法

时间:2010-08-01 14:29:31

标签: performance algorithm 2d collision-detection

我正在尝试确定Object1是否会在给定以下信息的情况下与Object2发生冲突:

1)对象的边界框(使用有界框碰撞检测)

2)物体的速度

3)对象的当前位置(x,y坐标)

4)物体的方向(向上,向下,向左或向右)

对于一些图像,想象一下在2D网格上行进的物体,它们只能在该网格的线上移动。

因此,鉴于上述信息,我需要一种有效但可读的算法来确定这些对象是否会发生冲突。通过有效,我的意思是花费在计算上的时间的最小化时间。 Psuedocode或链接很好。

3 个答案:

答案 0 :(得分:3)

首先,找到框在X轴上重叠的时间间隔。 其次,找到框在Y轴上重叠的时间间隔。 最后,检查两个时间间隔是否重叠。如果是这样,两个区间中最早的时间点就是它们碰撞的时刻。

答案 1 :(得分:2)

答案 2 :(得分:1)

你最好的方法是解决:

  1. x坐标重叠的线性时间范围(可能永远不会)
  2. y坐标将重叠的线性时间范围(可能永远不会)
  3. 然后测试两个时间范围是否相交。这将是一个额外的奖励,为您提供碰撞时间。

    这将是一个简单的恒定时间操作。