目录
3D射影空间中的直线
前文提到,三维空间下的点和直线都只有三个自由度,可以直接通过欧式空间的三维直角坐标,或者射影空间的四维齐次坐标来表示。
三维空间中的刚体则有六个自由度,需要通过旋转和平移来描述它的姿态。
而三维空间中的直线,只有四个自由度。处于一种中间的状态,所以它的数学描述相对复杂一点。
早在 19 世纪数学家 Julius Plücker 就开发出了普吕克坐标,可以方便的描述三维空间中的直线。它具有很好的数学计算特性,能够清晰描述直线与点/平面之间的关系。
此外普吕克坐标也被人们拿来描述作用在刚体上的力和力矩。
在射影空间中为了配合四维齐次坐标表示的点和平面的矩阵运算,人们对普吕克坐标做了一些映射关系,通过 \(4 \times 4\) 的普吕克矩阵来描述直线。
本文中,我们从欧式空间出发,先介绍直线的普吕克坐标定义及相关的几何意义,再讨论如何描述直线与点/平面的关系。最后扩展到射影空间下介绍普吕克矩阵的。
1. 欧式空间下直线的普吕克坐标(Plücker Coordinates)
三维空间中,两个点确定一条直线。作图解释直线的方向(direction)和矩(moment)。说明 moment 矢量的几何意义。这就是直线的普吕克坐标。
说明直线的普吕克坐标与点的选择无关
说明直线的普吕克坐标实际只有 4 个自由度
说明方向矢量为 0 矩矢量非 0 的几何意义,与无穷远点的关系,关联一下 2D 射影空间
2. 欧式空间下点、直线、平面的关系
。
2.1 点与直线的关系
从 moment 矢量的几何意义出发,介绍点到直线的距离,如何判定点在直线上。
2.2 直线与直线的关系
相交?
平行?
距离?
2.3 直线与平面的关系
两个平面相交确定一条直线。提一下平面与点的对偶关系。Dual
点+直线确定一个平面
直线与平面相交与一点
3. 射影空间下直线的普吕克矩阵(Plücker Matrix)
直接给出普吕克矩阵
展开普吕克矩阵,介绍它与普吕克坐标之间的关系
罗列点、直线、平面之间各种关系的表达式
4. 完
$$
\boldsymbol{p}_0 = \begin{bmatrix} x_0 \\ y_0 \\ z_0 \\ 1 \end{bmatrix} \qquad
\boldsymbol{p}_1 = \begin{bmatrix} x_1 \\ y_1 \\ z_1 \\ 1 \end{bmatrix}
$$
$$
\boldsymbol{p}_{\bot}
$$
$$
\boldsymbol{l} = \boldsymbol{p}_1 - \boldsymbol{p}_0
$$
$$
\boldsymbol{m} = \boldsymbol{p}_0 \times \boldsymbol{l}
$$
$$
\boldsymbol{L} = \boldsymbol{p}_0 \boldsymbol{p}_1^T - \boldsymbol{p}_1 \boldsymbol{p}_0^T
= \begin{bmatrix} x_0 \\ y_0 \\ z_0 \\ 1 \end{bmatrix}
\begin{bmatrix} x_1 & y_1 & z_1 & 1 \end{bmatrix}
- \begin{bmatrix} x_1 \\ y_1 \\ z_1 \\ 1 \end{bmatrix}
\begin{bmatrix} x_0 & y_0 & z_0 & 1 \end{bmatrix}
= \begin{bmatrix}
x_0 x_1 & x_0 y_1 & x_0 z_1 & x_0 \\
y_0 x_1 & y_0 y_1 & y_0 z_1 & y_0 \\
z_0 x_1 & z_0 y_1 & z_0 z_1 & z_0 \\
x_1 & y_1 & z_1 & 1 \\
\end{bmatrix}
- \begin{bmatrix}
x_1 x_0 & x_1 y_0 & x_1 z_0 & x_1 \\
y_1 x_0 & y_1 y_0 & y_1 z_0 & y_1 \\
z_1 x_0 & z_1 y_0 & z_1 z_0 & z_1 \\
x_0 & y_0 & z_0 & 1 \\
\end{bmatrix}
= \begin{bmatrix}
0 & x_0 y_1 - x_1 y_0 & x_0 z_1 - x_1 z_0 & x_0 - x_1 \\
y_0 x_1 - y_1 x_0 & 0 & y_0 z_1 - y_1 z_0 & y_0 - y_1 \\
z_0 x_1 - z_1 x_0 & z_0 y_1 - z_1 y_0 & 0 & z_0 - z_1 \\
x_1 - x_0 & y_1 - y_0 & z_1 - z_0 & 0
\end{bmatrix}
$$
$$
\begin{bmatrix} x_0 \\ y_0 \\ z_0 \end{bmatrix} \times \begin{bmatrix} x_1 \\ y_1 \\ z_1 \end{bmatrix} =
\begin{bmatrix}
y_0 z_1 - z_0 y_1 \\
z_0 x_1 - x_0 z_1 \\
x_0 y_1 - y_0 x_1
\end{bmatrix}
$$
$$
\boldsymbol{L}^* = \begin{bmatrix}
0 & z_0 - z_1 & y_1 - y_0 & y_0 z_1 - y_1 z_0 \\
z_0 - z_1 & 0 & x_0 - x_1 & z_0 x_1 - z_1 x_0 \\
y_0 - y_1 & x_0 - x_1 & 0 & x_0 y_1 - x_1 y_0 \\
z_0 y_1 - z_1 y_0 & x_0 z_1 - x_1 z_0 & y_0 x_1 - y_1 x_0 & 0
\end{bmatrix}
$$