什么是基于时间的碰撞检测?

   首先,了解一下,什么是基于帧的碰撞检测。基于帧的碰撞检测,就是说检测只在每一帧执行。但是不检测相邻帧之间的情况。因此,适合与,运动速度不快的物体的碰撞检测。

   而基于时间的碰撞检测,考虑就要全面些。不管速度再大,也能检测得到。

   以圆与圆的碰撞检测为例。

    
  1. 圆1:

    x1 = xl1+xmov1*t
    y1 = yl1+ymov1*t
    

    圆2:

    x2 = xl2+xmov2*t
    y2 = yl2+ymov2*t
    

    变量 xl1, yl1, xl2,  yl2 表示两个圆在上一帧的位置情况。 t表示,从上一帧开始计时的时间,以帧为单位。

  2. 两圆之间的距离:

     

  1. 如果发生碰撞的话,那么就有一下等式:

 

将x1,y1,x2,y2,带入上面的式子。就可以解出t。
如果解出t,  有0<t<=1。那就说明,在上一帧与下一帧之间发生了碰撞。因为t的单位是帧。
t=2,说明要经过两帧才发生碰撞。就是这个意思。
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐