3D点到3D线的最短距离

时间:2020-08-03 14:13:38

标签: excel-formula geometry

我有一条由两点构成的线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电子表格中使用它!

非常感谢。

2 个答案:

答案 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².