如何计算两个运动物体之间的最短距离



问题很简单,一个物体以v1的速度从东西方向移动,另一个物体则以v2的速度从南北方向移动。

我只需要算法(公式(来计算它们之间的最短距离,这样我就可以为它写一个程序

我确实知道它们和它们路径的交点之间的距离,它们是d1和d2。

假设您要求二维空间,在t=0处,让坐标轴上的起点为(d1,0) and (0,d2)。我们可以假设这一点,因为一个对象总是水平移动(E-W方向,沿X轴(,而另一个对象是垂直移动(S-N方向,沿Y轴(。现在,经过一段时间t,它们的位置将是(d1-t*v1)(0,d2-t*v2)。(速度-距离-时间关系(

现在,此时它们之间的距离t将是,

D = d^2 = (d1-t*v1)^2 + (d2-t*v2)^2

因此,区分两边wrt t

dD/dt = 2(-v1)(d1-t*v1) + 2(-v2)(d2-t*v2)   ....(1)

若要使D最小,dD/dt = 0和二阶微分必须为正。现在,二阶微分:

d2D/dt2 = 2*v1^2 + 2*v2^2 which is positive for all real v1/v2. So, if `dD/dt = 0`, distance will be minimum.


因此,等式(1(=0,我们得到

t = (d1v1 + d2v2)/(v1^2 + v2^2)

所以,在t = --above value--得到sqrt(D),这就是你的答案。

附言:在数学叠交上问这类问题。

最新更新