三维空间的投影变换——点,平面,直线,二次曲面
1. 三维空间中的点
在三维空间P3中的一点(X, Y, Z)T,它的齐次坐标为4元向量(X1,X2,X3,X4)T,可归一化表示为((X, Y, Z, 1)T,若X4 = 0,则表示该点位于无限远处。
对三维空间P3上的点的投影变换,通过对齐次向量X左乘一个4×4非奇异矩阵H得到,即X\’ = HX. 其中变换矩阵H有15个自由度,外加一个任意比例因子。
2. 三维空间中的平面
与二维空间中直线的表示方法相似,三维空间中的平面可以用如下方程表示为
π1X +π2Y +π3Z +π4 = 0
因此平面的齐次表示为π = (π1,π2,π3,π4)T,它有3个自由度。上式可简写为
πTX = 0
这表示点 X = (X, Y, Z, 1)T 位于平面π 上。
3. 平面的性质
三点决定一个平面。设有3个线性独立的点Xi, for i = 1,2, 3, 它们均位于一个平面 π 上,即满足πTXi = 0。进行矩阵堆叠得到
于是平面 π 是这个3×4矩阵的零空间向量,可在任意比例尺度上,被唯一确定。
在平面空间P2中,两点决定一条直线,直线l 除了可以用零空间向量法求解之外,还可以通过两个齐次点的叉积 l = x × y 直接求得。在三维空间P3中,也可以用类似叉积的方法求解平面。
三个平面决定一点。设有3个线性独立的平面πi, for i = 1,2, 3, 则它们的交点X可以由下式求得
点X 是这个3×4矩阵的零空间向量。这是平面空间P2中两线交于一点在三维空间P3中的推广。
投影变换。在点变换 X\’ = HX 下,平面的变换表示为:
π\’ =H-Tπ
参数化。在平面π上的一点X可以写成
X = Mx
其中4×3矩阵M的各列是πT的零空间,即πT M = 0。而3元向量 x 表示X在二维空间P2上的投影,是对点X的参数化。
4. 三维空间中的直线
直线可以定义为两个点的连线,或两个平面的相交。一个三维空间中的点有3个自由度,两个点A和B的连线满足如下方程
可见,直线 l 是这个2×4 矩阵的零空间,它有4个自由度(因为3×4矩阵的零空间有3个自由度)。在空间P3中对一个自由度为4的对象的齐次表示是困难的,因为它是一个5元向量,而点和平面的齐次表示都是4元向量。有多种表示方法可以解决这个表达困难的问题。
直线的组合表示。三维空间中的直线可以直接用上述的2×4矩阵W来表示:
它包含两个点的组合,代表以这两点为基向量所张成的空间。该直线实际上是W的零空间。另一方面,W的零空间必定以两个线性独立的向量为基,假设这两个基向量分别为P和Q,则WP = 0, 进而 ATP = BT P =0,意味着 P 是包含点A和点B的一个平面。同样Q也是包含点A和点B的一个平面。故该直线是这两个平面的交集,从而,直线也可以表示为如下2×4矩阵:
它表示以两个平面为基向量所张成的空间。该直线实际上也是W*的零空间。
这种组合表示方式也可以推广到平面,例如,一个平面π也可以表示成一个点X和一条直线W的组合矩阵M,即
平面 π 就是矩阵M的零空间。矩阵M是一个3×4矩阵,因此它也可以看做是三个共面点的组合。
5. 三维空间中的二次曲面(quadrics and dual quadrics)
空间P3中的二次曲面由下式定义:
XTQX = 0
其中Q是一个对称的4×4矩阵,它被用来代表二次曲面。
二次曲面的性质:
(1) 一个quadric有9个自由度,外加一个比例因子。
(2) 一个quadric由9个线性独立的点决定。
(3) 一个quadric定义了一个点和一个平面之间的极化关系(类似于二维空间中一个conic定义了一个点和一条直线之间的极化关系)。点X相对于Q的极平面为:
π = QX
(4) 平面π 与二次曲面Q相交于一个二次曲线C。
(5) 在点的投影变换X\’ = HX下,一个quadric的变换则为
Q\’ = H-TQH-1
(6) 一个quadric的对偶仍是一个quadric。在点的投影变换X\’ = HX下,一个dual quadric的变换则为
Q*\’ = HQ*HT
可见,计算dual quadric的变换比point quadric的变换要容易。