我有一条由两点构成的线AB:
A: "X": 3609859.464
"Y": -288646.389
"Z": 5232776.002
B: "X": 3627454.491,
"Y": -273763.234,
"Z": 5222031.489
我还有一个具有以下坐标的Xn点:
"X": 3626785.577,
"Y": -274291.458,
"Z": 5222356.006
如何计算Xn到AB的最短距离?
如果有人已经可以使用它,我最终将在excel电子表格中使用它!
非常感谢。
答案 0 :(得分:0)
制作矢量AB和AX
AB.x = B.x - A.x
AB.y = B.y - A.y
AB.z = B.z - A.z
and similar for AX
使用标量(点)乘积查找X在AB线上的投影
P = A + AB * (AB.dot.AX) / (AB.dot.AX)
where
AB.dot.AX = AB.x * AX.x + AB.y * AX.y + AB.z * AX.z
所需距离是矢量XP的长度
答案 1 :(得分:0)
使用AB
上的移动点,平方距离为
(XA + t AB)²
区别t
,我们取消了导数
(XA + t AB) AB = 0
或
t = - XA.AB / AB².
这给我们最小的平方距离
(XA - (XA.AB / AB²) AB)² = XA² - 2 (XA.AB)²/AB² + (XA.AB)²/AB² = XA² - (XA.AB)²/AB².