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

how to calculate shortest distance between two moving objects

问题很简单,一个物体从东西v1的速度移动,另一个从南-北[=20]移动=] 速度 v2.

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

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

假设您要求二维 space,在 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

因此,区分双方 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),这就是你的答案。

PS:在数学 stackexchange 上问这些类型的问题。