用矩陣表述變換與齊次坐標

一、線性變換與仿射變換的概念

我們知道在計算機圖形學中,變換通常包含線性變換、仿射變換、透視變換等。并且,我們用4x4的矩陣表述變換,同時引入了齊次坐標。那么,為什么會這樣呢?

在討論這個問題之前,我們需要了解一下線性變換和仿射變換的定義。

線性映射:在兩個向量空間之間的一種保持向量加法和標量乘法的特殊映射。

線性變換種類較多,通常有旋轉、縮放、錯切、鏡像等。

仿射映射:指在幾何中,一個向量空間進行一次線性變換并接上一個平移,變換為另一個向量空間。

二、用方程組表述線性變換與仿射變換

首先,我們討論一下線性變換。由于線性變換種類較多,這里僅討論最常見的旋轉變換

在三維笛卡爾坐標系Oxyz中,我們如何得到點P(x, y, z)繞Z軸逆時針旋轉α度后新的坐標P'(x', y', z')

由于是繞Z軸旋轉,我們可以輕易地把笛卡爾坐標系轉換為Oxy平面上的極坐標系Orr為半徑坐標。假設點P與X軸夾角為\theta,我們可以得到P'關于xy的方程(此處z不用考慮)。

\left\{ \begin{array}{c} x = r \cdot cos\theta \\ y = r \cdot sin\theta \\ \end{array} \right. \tag1

\left\{ \begin{array}{l} x' = r \cdot cos(\theta + \alpha) \\ y' = r \cdot sin(\theta + \alpha) \\ z' = z \end{array} \right. \tag2
由方程組(1)和方程組(2)可以得出:
\left\{ \begin{array}{l} x' = x \cdot cos\alpha - y \cdot sin\alpha \\ y' = y \cdot cos\alpha + x \cdot sin\alpha \\ z' = z \end{array} \right. \tag 3
接下來我們討論一下仿射變換中的特例:平移

思考一個問題:在三維笛卡爾坐標系Oxyz中,我們如何平移一個點P(x, y, z)?很簡單,我們只需要將每一個坐標分量和對應的偏移量相加即可。
\left\{ \begin{array}{c} x' = x + \Delta x \\ y' = y + \Delta y \\ z' = z + \Delta z \\ \end{array} \right. \tag4

三、用矩陣表述線性變換和仿射變換

如果我們僅僅做單次的旋轉或者平移,上面的方程組已經足夠了。然而,在實際的項目當中,我們通常需要做復雜的連續的變換操作。如果還用這種方程組的辦法,大量的計算不論是對開發人員還是計算機都是一種不必要的負擔。因此,尋找一種更加方便計算的方法是無比迫切的事情。聯系到矩陣與方程組的關系,以及矩陣乘法的本質,矩陣表述變換由此變得自然。

因此,旋轉變換方程組可以由矩陣表述為:
\left\{ \begin{matrix} x' \\ y' \\ z' \end{matrix} \right\} = \left\{ \begin{matrix} cos\alpha & -sin\alpha & 0 \\ sin\alpha & cos\alpha & 0 \\ 0 & 0 & 1 \end{matrix} \right\} \cdot \left\{ \begin{matrix} x\\ y\\ z \end{matrix} \right\} \tag 5
由式(5)可以得出,旋轉變換是一個3x3矩陣(設為M)與點P的乘積結果。即:
f(p) = M \cdot P \tag 6
如果有多線性變換,其結果為:
\begin{align} f(p) & = M_1 \cdot (M_2 \cdot (M_3 \cdot P)) \\ & = (M_1 \cdot M_2 \cdot M_3) \cdot P &\text{根據矩陣乘法結合律} \\ & = M \cdot P \end{align} \tag7
同理,平移變換可以由矩陣表述為:
\left\{ \begin{matrix} x'\\ y'\\ z'\\ \end{matrix} \right\} = \left\{ \begin{matrix} x\\ y\\ z\\ \end{matrix} \right\} + \left\{ \begin{matrix} \Delta x\\ \Delta y\\ \Delta z\\ \end{matrix} \right\} \tag8

四、為什么是4x4矩陣?

很遺憾,平移無法用3x3矩陣與向量的乘法來計算。也就是說,3x3矩陣不能使投影變換的計算變得簡單方便。

什么樣的矩陣才能同時表述線性變換和平移?

回過頭去重新審視方程組(3)、(4),上面的問題變成了什么樣的矩陣能夠同時表達方程組(3)、(4)。

考慮為了同時滿足方程組(3)、(4),我們可以構造一個特殊的方程組:
\left\{ \begin{array}{l} x' = cos\alpha \cdot x - sin\alpha \cdot y + \Delta x \\ y' = sin\alpha \cdot x + cos\alpha \cdot y + \Delta y \\ z' = z + \Delta z \end{array} \right. \tag9
這個方程組是一次旋轉與一次平移的結合。然而,方程組中存在常量,我們如何用矩陣乘法來表述這個非齊次方程組呢?

我們可以把它看作一個四元齊次式,其中新增一個分量w用來表示偏移量:
\left\{ \begin{array}{l} \Delta x = a \cdot w ,& \text{$a \neq 0$} \\ \Delta y = b \cdot w ,& \text{$b \neq 0$} \\ \Delta z = c \cdot w ,& \text{$c \neq 0$} \end{array} \right. \tag {10}
由方程組(9)、(10)可知:
\left\{ \begin{array}{l} x' = cos\alpha \cdot x - sin\alpha \cdot y + a \cdot w \\ y' = sin\alpha \cdot x + cos\alpha \cdot y + b \cdot w \\ z' = z + c \cdot w \\ w' = w \end{array} \right. \tag {11}
現在,我們可以用4x4矩陣來表述方程組(11):
\left\{ \begin{matrix} x' \\ y' \\ z' \\ w' \end{matrix} \right\} = \left\{ \begin{matrix} cosα & -sinα & 0 & a\\ sinα & cosα & 0 & b\\ 0 & 0 & 1 & c \\ 0 & 0 & 0 & 1 \end{matrix} \right\}· \left\{ \begin{matrix} x\\ y\\ z \\ w \end{matrix} \right\} \tag {12}
此時,我們已經可以用4x4矩陣同時表述旋轉與平移。代價是我們新增了一個分量w

五、齊次坐標

上面提到的三位點P額外添加一個分量w組成的四元組,其實就是齊次坐標。那么,我們如何用齊次坐標表示三維的點呢?

事實上,齊次坐標(x, y, z, w) \Leftrightarrow 三維坐標 (x/w, y/w, z/w)w \neq 0

六、齊次坐標如何區分向量與點

由方程組(10)、(12)中,當w=1\alpha = 0^\circ時,
\left\{ \begin{matrix} x' \\ y' \\ z' \\ 1 \end{matrix} \right\} = \left\{ \begin{matrix} 1 & 0 & 0 & \Delta x \\ 0 & 1 & 0 & \Delta y \\ 0 & 0 & 1 & \Delta z \\ 0 & 0 & 0 & 1 \end{matrix} \right\}· \left\{ \begin{matrix} x\\ y\\ z \\ 1 \end{matrix} \right\} \tag{13}
這就是點P的平移變換。

我們也知道,線性變換是發生在兩個向量空間之間的,也就是說,一個向量經過線性變換會生成一個新的向量。而向量是沒有位置的,所以向量沒有平移變換。為了使得平移對向量無效,此時,w = 0

由方程組(10)、(12)可知,當w=0時,三維向量的旋轉變換矩陣表述為
\left\{ \begin{matrix} x' \\ y' \\ z' \\ 0 \end{matrix} \right\} = \left\{ \begin{matrix} cos \alpha & -sin \alpha & 0 & \Delta x \\ sin \alpha & cos \alpha & 0 & \Delta y \\ 0 & 0 & 1 & \Delta z \\ 0 & 0 & 0 & 1 \end{matrix} \right\}· \left\{ \begin{matrix} x\\ y\\ z \\ 0 \end{matrix} \right\} \tag {14}
由方程式(13)、(14)可知,齊次坐標可以很好的區分向量和點。即,(x, y, z, 1)是點,(x, y, z, 0)是向量。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內容

  • 線性代數在科學領域有很多應用的場景,如下: 矩陣,是線性代數中涉及的內容, 線性代數是用來描述狀態和變化的,而矩陣...
    zhoulujun閱讀 12,184評論 3 44
  • 理解矩陣一:轉載自:http://blog.csdn.net/myan/article/details/64751...
    jiandanjinxin閱讀 1,552評論 1 15
  • 如果不熟悉線性代數的概念,要去學習自然科學,現在看來就和文盲差不多。”,然而“按照現行的國際標準,線性代數是通過公...
    Drafei閱讀 1,579評論 0 3
  • 漂亮的盆景欣賞電話13516132351張麗鵬
    老竇閱讀 207評論 0 0
  • 《心事》 我的眼睛朦朧了月 朦朧了燈 我的心事深刻又繁紛 我的心事深刻又繁紛 解開這樁 還有那樁 還有那樁 復增一...
    黃開兵閱讀 260評論 0 0