圆 - 圆碰撞预测

Boj*_*ojo 8 algorithm geometry prediction collision

我知道如何检查两个圆是否相互交叉.但是,有时圆圈移动太快并最终避免在下一帧上发生碰撞.

我目前解决问题的方法是在前一个位置和当前位置之间检查圆圈碰撞任意次数.

有没有一种数学方法可以找到两个圆碰撞所需的时间?如果我能够获得该时间值,我可以将圆圈移动到那个位置,然后在那个时候碰撞它们.

编辑:恒定速度

And*_*ard 12

我假设圆圈的运动是线性的.比方说,一个圆的中心的位置由矢量方程给出Ca = Oa + t*Da其中

Ca = (Cax, Cay)是当前位置
Oa = (Oax, Oay)是起始位置
t是经过时间
Da = (Dax, Day)是每单位时间的位移(速度).

同样,对于圆圈B的中心:Cb = Ob + t*Db.

然后,你想找到T,使得||Ca - Cb|| = (ra + rb)地方rarb分别圈A和B的半径.

平方双方:
||Ca-Cb||^2 = (ra+rb)^2
扩大:
(Oax + t*Dax - Obx - t*Dbx)^2 + (Oay + t*Day - Oby - t*Dby)^2 = (ra + rb)^2

从那里你应该得到一个二次多项式,你可以求解t(如果存在的话).