我假设圆的运动是线性的。比方说,一个圆的中心的位置由矢量方程给出
Ca = Oa + t*Da其中
Ca = (Cax, Cay)是当前位置,
Oa = (Oax, Oay)是起始位置,
t是经过时间,
Da = (Dax, Day)是每单位时间的位移(速度)。
同样对于B圈的中心:
Cb = Ob + t*Db。
然后,您想要找到t,使得
||Ca - Cb|| = (ra + rb)其中
ra和
rb分别是圆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的二次多项式(如果存在的话)。



