两点的叉乘为过两点直线的系数

文章目录
  1. 1. 参考

《视觉惯性SLAM理论与源码解析》P31证明,整理自《两点的叉乘为过两点直线的系数[1]》,另外参考[2]

已知:二维平面下的两点 \(A(x_1,y_1)\)\(B(x_2,y_2)\) ,证明 \(A,B\) 两点的齐次形式的叉乘为过该两点的直线的系数。

预备:叉乘的定义为,已知向量 \(a = (a_1,a_2,a_3), b=(b_1,b_2,b_3)\) , 那么\(a\times b=(a_2b_3-a_3b_2, a_3b_1-a_1b_3, a_1b_2-a_2b_1)\)

证明: 因为 \(A,B\) 两点的齐次式为 \((x_1,y_1,1)\)\((x_2,y_2,1)\) ,代入叉乘的定义得 \((y_1-y_2, x_2-x_1, x_1y_2-y_1x_2)\)

定义直线的斜截式为 \(y=kx + b\) ,将 \(A,B\) 两点代入有:

\(y_1 = kx_1 + b\)

\(y_2 = kx_2 + b\)

将上面两式化简得,

\(k = \frac{y_2-y_1}{x_2-x_1} ------(1)\)

\(b = y_1 - \frac{y_2-y_1}{x_2-x_1}* x_1------(2)\)

接下来,将直线斜截式 $y = kx + b $ 转化为一般式 $ ax + by + c = 0$ ,即 \(-kx+y-b=0\)

那么有 \((a,b,c)=(-k,1,-b)\)

代入式(1)和式(2)得,

\((a,b,c)=(\frac{y_1-y_2}{x _2-x_1},1,\frac{y_2-y_1}{x_2-x_1}*x_1-y_1)\)

两边同乘 \((x_2-x_1)\) 后得,

\((a,b,c)=(y_1-y_2,x_2-x_1,(y_2-y_1)*x_1-(x_2-x_1)*y_1)\) ,即

\((a,b,c)=(y_1-y_2, x_2-x_1, x_1y_2-y_1x_2)\) ,可见其与 \(A,B\) 两点叉乘结果一致。

结论:

齐次形式下的两点的叉乘为过该两点的直线的系数;

两点的齐次坐标的叉乘结果可以表示过该两点的直线。

补充:

实际上,齐次形式下的两点的叉乘结果还是该直线与原点所形成平面的法向量。

即,直线与原点组成的平面的法向量和直线方程的系数实际是相同的,都是直线上任意不同两点的叉乘结果(可能相差一个非零实数系数k)。

参考

  1. [^](#ref_1_0)两点的叉乘为过两点直线的系数 https://blog.csdn.net/u011089570/article/details/79040948
  2. [^](#ref_2_0)齐次坐标,向量叉乘,无穷远点 https://www.cnblogs.com/vivian187/p/15238794.html