三维空间的投影变换(1)——点,平面,直线,二次曲面

1. 三维空间中的点

在三维空间P3中的一点(X, Y, Z)T,它的齐次坐标为4元向量(X1,X2,X3,X4)T,可归一化表示为((X, Y, Z, 1)T,若X= 0,则表示该点位于无限远处。

对三维空间P3上的点的投影变换,通过对齐次向量X左乘一个4x4非奇异矩阵H得到,即X' = HX. 其中变换矩阵H有15个自由度,外加一个任意比例因子。

2. 三维空间中的平面

与二维空间中直线的表示方法相似,三维空间中的平面可以用如下方程表示为

π1X +π2Y +π3Z +π= 0

因此平面的齐次表示为π(π1,π2,π3,π4)T,它有3个自由度。上式可简写为

πTX = 0

这表示点 (X, Y, Z, 1)位于平面π 上。

3. 平面的性质

三点决定一个平面。设有3个线性独立的点Xi, for i = 1,2, 3, 它们均位于一个平面 π 上,即满足πTXi = 0。进行矩阵堆叠得到

于是平面 π 是这个3x4矩阵的零空间向量,可在任意比例尺度上,被唯一确定。

在平面空间P2中,两点决定一条直线,直线l 除了可以用零空间向量法求解之外,还可以通过两个齐次点的叉积 l = x × y 直接求得。在三维空间P3中,也可以用类似叉积的方法求解平面。

三个平面决定一点。设有3个线性独立的平面πi, for i = 1,2, 3, 则它们的交点X可以由下式求得

  

X 是这个3x4矩阵的零空间向量。这是平面空间P2中两线交于一点在三维空间P3中的推广。

投影变换。在点变换 X' = HX 下,平面的变换表示为:

π' =H-Tπ

参数化。在平面π上的一点X可以写成

X = Mx

其中4x3矩阵M的各列是πT的零空间,即πM = 0。而3元向量 x 表示X在二维空间P2上的投影,是对点X的参数化。

4. 三维空间中的直线

直线可以定义为两个点的连线,或两个平面的相交。一个三维空间中的点有3个自由度,两个点AB的连线满足如下方程


可见,直线 l 是这个2x4 矩阵的零空间,它有4个自由度(因为3x4矩阵的零空间有3个自由度)。在空间P3中对一个自由度为4的对象的齐次表示是困难的,因为它是一个5元向量,而点和平面的齐次表示都是4元向量。有多种表示方法可以解决这个表达困难的问题。

直线的组合表示。三维空间中的直线可以直接用上述的2x4矩阵W来表示:


它包含两个点的组合,代表以这两点为基向量所张成的空间。该直线实际上是W的零空间。另一方面,W的零空间必定以两个线性独立的向量为基,假设这两个基向量分别为P和Q,则WP = 0, 进而 ATP = BP =0,意味着 P 是包含点A和点B的一个平面。同样Q也是包含点A和点B的一个平面。故该直线是这两个平面的交集,从而,直线也可以表示为如下2x4矩阵:


它表示以两个平面为基向量所张成的空间。该直线实际上也是W*的零空间。

这种组合表示方式也可以推广到平面,例如,一个平面π也可以表示成一个点X和一条直线W的组合矩阵M,即


平面 π 就是矩阵M的零空间。矩阵M是一个3x4矩阵,因此它也可以看做是三个共面点的组合。

5. 三维空间中的二次曲面(quadrics and dual quadrics)

空间P3中的二次曲面由下式定义:

XTQX = 0

其中Q是一个对称的4x4矩阵,它被用来代表二次曲面。

二次曲面的性质

 (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的变换要容易。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭