首页 关于
树枝想去撕裂天空 / 却只戳了几个微小的窟窿 / 它透出天外的光亮 / 人们把它叫做月亮和星星
目录

2D射影空间中的点、直线和圆锥曲线

对于平面上的一个点,我们可以用一对实数 \((x,y) \in \mathbb{R}^2 \) 来描述它。一般情况下,我们会将之写成列向量的形式\(\begin{bmatrix} x & y \end{bmatrix}^T\)。 平面上的一条直线,可以写成 \(a x + b y + c = 0\) 的形式,我们可以用一个三维的向量\(\begin{bmatrix} a & b & c \end{bmatrix}^T\)来描述它。 但这并不是一种一一映射的关系,因为乘上一个非零系数 \(k\) 并不会改变等式 \(ka x + kb y + kc = 0\) 成立与否的事实,所以对于任何一个非零常数 \(k\), \(\begin{bmatrix} a & b & c \end{bmatrix}^T\) 与 \(k\begin{bmatrix} a & b & c \end{bmatrix}^T\)表述的是同一条直线。

1. 射影空间下的点与直线

给定一个点 \(\boldsymbol{x} = \begin{bmatrix} x, y \end{bmatrix}^T\) 和直线 \(\boldsymbol{l} = \begin{bmatrix} a & b & c \end{bmatrix}\),当且仅当 \(ax + by + c = 0\)时,我们说点\(\boldsymbol{x}\)在直线\(\boldsymbol{l}\)上。 我们可以将之写成向量内积的形式: $$ \boldsymbol{x} \cdot \boldsymbol{l} = \begin{bmatrix} x & y & 1 \end{bmatrix} \begin{bmatrix} a \\ b \\ c \end{bmatrix} = 0 $$ 当且仅当 \(ax + by + c = 0\)时,对于任何非零常数 \(k\) 都有 \(\begin{bmatrix} kx & ky & k \end{bmatrix} \boldsymbol{l} = 0\)。 显然对于任何非零常数\(k\),我们都可以称点\(\begin{bmatrix} kx & ky & k \end{bmatrix}^T\)在直线\(\boldsymbol{l}\)上,而且它们可以看做是同一个点。 此时,我们可以用三个元素来表示一个点向量\(\begin{bmatrix} x_1 & x_2 & x_3 \end{bmatrix}^T\),这种表示方式称为点坐标的齐次表述(Homogeneous representation of points), 特别的有 $$ \begin{bmatrix} \frac{x_1}{x_3} \\ \frac{x_2}{x_3} \\ 1 \end{bmatrix} = \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} $$ 我们将齐次表述的点坐标所在的域记为\(\mathbb{P}^2\)。对于平面上的一条直线,在域\(\mathbb{R}^2\)中总有方程 \(ax + by + c = 0\)成立。 在域\(\mathbb{P}^2\)中总有方程\((ka)x + (kb)y + (kc) = 0, k \neq 0\)成立。 所以向量 \(\begin{bmatrix} a & b & c \end{bmatrix}^T\)与\(k\begin{bmatrix} a & b & c \end{bmatrix}^T, k \neq 0\)描述的同一条直线。 我们可以用向量\(\begin{bmatrix} a & b & c \end{bmatrix}^T\)表示,这种表述方式就是直线的齐次表述(Homogeneous representation of points)。 由于\(\begin{bmatrix} 0, 0, 0 \end{bmatrix}^T\)不表示任何直线,所以域\(\mathbb{P}^2\)是由\(\mathbb{R}^3 - \begin{bmatrix} 0, 0, 0 \end{bmatrix}^T\)构成的, 称之为摄影空间(projective space)

根据上述关于点和直线的齐次表述方式,我们可以得出点在直线上的判定方法: $$ \begin{equation}\label{online} \boldsymbol{x} \cdot \boldsymbol{l} = 0 \end{equation} $$

在2D空间中,点和平面都只有两个自由度。在齐次表述方式下,两条直线\(\boldsymbol{l}\)与 \(\boldsymbol{l}'\)的交点 \(\boldsymbol{x}\), 以及通过两个点\(\boldsymbol{x}\) 与 \(\boldsymbol{x}'\) 的直线 \(\boldsymbol{l}\) 都可以通过叉乘的形式得到:

$$ \begin{align}\label{join} \boldsymbol{x} & = \boldsymbol{l} \times \boldsymbol{l}' \\ \boldsymbol{l} & = \boldsymbol{x} \times \boldsymbol{x}' \end{align} $$

一般的,如果我们交换直线和点的符号,式\((\ref{online})\)可以写作 \(\boldsymbol{l} \cdot \boldsymbol{x} = 0\)。 我们可以说在2D的射影空间中,直线与点是对偶的。如果交换直线与点的符号,我们可以得到一个与\(\mathbb{P}^2\)对偶的空间,在该空间下的几何性质, 可以通过交换\(\mathbb{P}^2\)中各性质的直线与点的符号得到。

2. 无穷远处的点和线

假设我们有两条直线 \(\boldsymbol{l} = \begin{bmatrix} a & b & c \end{bmatrix}^T\) 和 \(\boldsymbol{l'} = \begin{bmatrix} a & b & c' \end{bmatrix}^T\),通过叉乘,可以很容易求得两条直线的交点 \(\boldsymbol{x} = \begin{bmatrix} b, -a, 0 \end{bmatrix}^T\)。实际上,这两条直线是互相平行的,它们是没有交点的,或者说它们的交点在无穷远处。 我们将\(\boldsymbol{x}\)写成非齐次的形式 \(\begin{bmatrix} b/0, -a/0 \end{bmatrix}^T\) 是没有意义的, 因为域 \(\mathbb{R}^2\) 中并没有一个有限的实数对\((x_1, x_2)\)与\(\boldsymbol{x} = \begin{bmatrix} b, -a, 0 \end{bmatrix}^T\)对应。

在摄影空间\(\mathbb{P}^2\)中,齐次向量\(\boldsymbol{x} = \begin{bmatrix} x_1, x_2, x_3\end{bmatrix}^T\), 当\(x_3 = 0\)时,虽然不能在\(\mathbb{R}^2\)中找到一个映射,但在域\(\mathbb{P}^2\)中是有意义的,它们都是无穷远处的点,称之为ideal points, 直译过来就是理想点(我不喜欢这个直译,它不能表达无穷远处的点的概念,后文都以 ideal 点替代)。 所有 ideal点的集合可以写做: $$ \left\{ \begin{bmatrix} x_1 & x_2 & 0 \end{bmatrix}^T | x_1 \in \mathbb{R}, x_2 \in \mathbb{R} \right\} $$ 它们都在一条直线上 \(\boldsymbol{l}_{\infty} = \begin{bmatrix} 0 & 0 & 1 \end{bmatrix}^T\),即 \(\begin{bmatrix} x_1 & x_2 & 0 \end{bmatrix} \begin{bmatrix} 0 & 0 & 1 \end{bmatrix}^T = 0\)。 我们称之为无穷远处的直线line at infinity。域\(\mathbb{P}^2\)所张成的空间为射影平面projective plane。\(\mathbb{P}^2\)下的几何性质的研究称为射影几何(projective geometry)

在摄影空间\(\mathbb{P}^2\)中,我们总可以说,任意两条不同的直线交于一点,任意两个不同的点构成一条直线。但是在传统的欧氏几何空间\(\mathbb{R}^2\)中就不存在这样的性质。

我们可以把射影平面\(\mathbb{P}^2\)中的点想象成域\(\mathbb{R}^3\)中通过原点的射线。对于任何非零系数\(k\), \(k\begin{bmatrix} x_1 & x_2 & x_3 \end{bmatrix}^T\)在\(\mathbb{P}^2\)中都是同一个点,在\(\mathbb{R}^3\)中则是一条射线。 \(\mathbb{P}^2\)中的直线则是域\(\mathbb{R}^3\)中通过原点的平面。

如右图所示,特别的,无穷远处的直线\(\boldsymbol{l}_{\infty} = \begin{bmatrix} 0 & 0 & 1 \end{bmatrix}^T\) 对应着 \(\mathbb{R}^3\) 中经过原点由\(x_1 x_2\)所张成的平面\(x_3 = 0\), 无穷远处的点则是该平面上经过原点的射线。 当 \(x_3 = 1\)时,我们可以得到一个平面\(\boldsymbol{\pi}\)。任何不在无穷处的点,在\(\mathbb{R}^3\)中都会与\(\boldsymbol{\pi}\)相交。 我们可以说该平面与\(\mathbb{R}^2\)是一一映射的。

3. 圆锥曲线(Conics)

圆锥曲线就是平面上的一些二次方程描述的曲线,椭圆、抛物线、双曲线都是圆锥曲线,在欧氏空间\(\mathbb{R}^2\)下可以写成: $$ ax^2 + bxy +c y^2 + dx + ey + f = 0 $$ 在摄影空间\(\mathbb{P}^2\)中,写成齐次坐标的形式就是: $$ ax_1^2 + b x_1 x_2 + c x_2^2 + d x_1 x_3 + e x_2 x_3 + f x_3^2 = 0 $$ 令: $$ C = \begin{bmatrix} a & b/2 & d/2 \\ b/2 & c & e/2 \\ d/2 & e/2 & f \\ \end{bmatrix}, \boldsymbol{x} = \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} $$ 有矩阵形式的圆锥曲线方程: $$ \begin{equation} \label{conic} \boldsymbol{x}^T C \boldsymbol{x} = 0 \end{equation} $$ 我们称 \(C\) 为系数矩阵,它是一个对称阵。虽然有6个量,但是它乘上任意一个非零常数 \(k\) 都有上式\((\ref{conic})\)成立,所以圆锥曲线实际只有5个自由度。也因此只要有5个不同的点我们就可以确定一个圆锥曲线。 假设我们有正则化之后的齐次点坐标\(\begin{bmatrix} x_i, y_i, 1 \end{bmatrix}^T, i \in [1, 5]\),带入式\((\ref{conic})\)中,就可以得到一个\(5 \times 6\)的矩阵,构成如下的线性方程: $$ \begin{bmatrix} x_1^2 & x_1 y_1 & y_1^2 & x_1 & y_1 & 1 \\ x_2^2 & x_2 y_2 & y_2^2 & x_2 & y_2 & 1 \\ x_3^2 & x_3 y_3 & y_3^2 & x_3 & y_3 & 1 \\ x_4^2 & x_4 y_4 & y_4^2 & x_4 & y_4 & 1 \\ x_5^2 & x_5 y_5 & y_5^2 & x_5 & y_5 & 1 \\ \end{bmatrix} \begin{bmatrix} a \\ b \\ c \\ d \\ e \\ f \end{bmatrix} = \boldsymbol{0} $$ 通过SVD分解,获取上述方程的零空间即可求得圆锥曲线的各个系数。

对于圆锥曲线方程 \(\boldsymbol{x}^T C \boldsymbol{x} = 0\),令\(\boldsymbol{l} = C \boldsymbol{x}\) 则有\(\boldsymbol{x} \cdot \boldsymbol{l} = 0\),这正是直线方程的齐次表述。 这个\(\boldsymbol{l}\)就是圆锥曲线\(C\)上经过点\(\boldsymbol{x}\)的一条切线。如下面右图所示,圆锥曲线上所有点的切线可以包络出该圆锥曲线。

我们已经了解到在摄影空间\(\mathbb{P}^2\)中,直线与点是对偶的。这种对偶特性在圆锥曲线中也能够体现出来。\(\boldsymbol{x}^T C \boldsymbol{x} = 0\) 形式的圆锥曲线被称为点圆锥曲线(point conic)。 其对偶形式的圆锥曲线也被称为线圆锥曲线(line conic 或者对偶圆锥曲线 dual conic)。对于\(C\)的共轭矩阵\(C^*\),线圆锥曲线方程可以写作 \(\boldsymbol{l}^T C^* \boldsymbol{l} = 0\)。 根据对偶原理,我们可以很容易求得切线\(\boldsymbol{l}\)与圆锥曲线\(C\)的交点\(\boldsymbol{x} = C^* \boldsymbol{l}\)。

4. 完




Copyright @ 高乙超. All Rights Reserved. 京ICP备16033081号-1