空间两条直线的最短距离及最近点计算

时间:2024-04-12 19:41:43

直线的信息可以以两个端点的形式给出,也可以以一个直线上的点和直线的方向向量给出。本文中假设这两条直线不共线,即这两条直线既不重合也不相交。

1.如果这两条直线是以两个端点的形式给出,那么假设直线l0的两端点为:P0、P1;直线l1的两端点为Q0、Q1,;求两直线的最短距离?

直线l0我们可以用方程表示为:

        空间两条直线的最短距离及最近点计算(1)

直线段l1我们也可以用方程表示为:

          空间两条直线的最短距离及最近点计算  (2)

式中,P、Q分别表示两直线段上的点。

那么点P和点Q的距离为:

空间两条直线的最短距离及最近点计算(3)

我们将(3)式等式两边平方得到:

          空间两条直线的最短距离及最近点计算     (4)

那么求解这两条空间直线段的最短距离就变成了一个求解最小二乘法的最小值问题了,即求解方程:

      空间两条直线的最短距离及最近点计算(5)

那么这个方程怎么求解呢?下面我们来求解(5)式:由式(1)和式(2)我们有:

空间两条直线的最短距离及最近点计算(6)

将(6)式带入(5)式有:

         空间两条直线的最短距离及最近点计算   (7)

那么就变为求解超静定方程:  空间两条直线的最短距离及最近点计算   (8)

我们将(8)式变形得到求解超静定方程:

          空间两条直线的最短距离及最近点计算 (9)

令A=(P0-P1,Q0-Q1),x=(a,-n)T,b=Q1-P1;则式(9)变为:

                空间两条直线的最短距离及最近点计算 (10)

两边同时乘以矩阵A的装置得到:

          空间两条直线的最短距离及最近点计算      (11)

则x可以求解得到:

          空间两条直线的最短距离及最近点计算  (12)

求解得到a和n之后带入式(6)就可以求解得到点P和点Q了,然后代入式(3)就可以求解得到最小距离了。

2.如果这两条直线是以直线上的点和该直线的方向向量给出,那么假设直线l0上有一点P0,它的方向向量为n;直线l1上有一点Q0,它的方向向量为m;那么直线l0上的点可以表示为:

空间两条直线的最短距离及最近点计算(13)

直线l1上的点可以表示为:

 空间两条直线的最短距离及最近点计算(14)

点P和点Q的距离为:

 空间两条直线的最短距离及最近点计算(15)

将式(13)和式(14)带入式(15)得到:

空间两条直线的最短距离及最近点计算(16)

两边平方得到:

空间两条直线的最短距离及最近点计算(17)

那么求解两条直线的最短距离,就变为了求解式(17)的最小二乘方程组,即:

  空间两条直线的最短距离及最近点计算 (18)

变形得到:

 空间两条直线的最短距离及最近点计算(19)

同理,令A=(n,m),x=(a,-b)T,b=Q0-P0,则(19)式变为:

空间两条直线的最短距离及最近点计算(20)

同理求得x为:

    空间两条直线的最短距离及最近点计算(21)

求得a,b之后带入式(13)和式(14)就可以求得点P和点Q,根据式(15)就可以求得最短距离了。