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

时间:2015-08-26 05:04:54

标签: algorithm graph-algorithm relative

问题很简单,一个物体正在从东西向移动,速度为v1,另一个物体从南北以速度{{1}移动}。

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

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

1 个答案:

答案 0 :(得分:2)

假设您要求{-1}}的二维空间,请让坐标轴上的起点为t=0。我们可以假设这是因为一个物体总是水平移动(E-W方向,沿X轴)和其他垂直移动(S-N方向,沿Y轴)。现在,经过一段时间(d1,0) and (0,d2),他们的职位将是t(d1-t*v1)。 (速度 - 距离 - 时间关系)。

现在,它们之间的距离为(0,d2-t*v2)

t

因此,区分双方D = d^2 = (d1-t*v1)^2 + (d2-t*v2)^2

t

要使D最小,dD/dt = 2(-v1)(d1-t*v1) + 2(-v2)(d2-t*v2) ....(1) 和第二差分必须为正。现在,第二个差异:

dD/dt = 0


所以,等于(1)= 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.

所以,在t = (d1v1 + d2v2)/(v1^2 + v2^2) 获取sqrt(D),这将是您的答案。

PS:在数学堆栈交换中询问这些类型的问题。