仿射變換與齊次坐標系

仿射變換(Affine Transformation)和齊次坐標系(Homogeneous Coordinate)是計算機圖形學中經(jīng)常碰到的基本概念汗盘。這篇文章主要講述什么是仿射變換和齊次坐標系,以及在圖形系統(tǒng)中為什么要是用它們狠半。不求全面,只為自己學習理解圆凰。

仿射變換其實是另外兩種簡單變換的疊加:一個是線性變換询件,一個是平移變換。統(tǒng)一平移變換和線性變換的一種變換我們起了個名字叫“仿射變換”畅涂。這個新的變換就不再單純的是兩個線性空間的映射了,而是變成了兩個仿射空間的映射關(guān)系道川。為了更好地理解仿射變換午衰,首先就要知道線性變換以及它的不足立宜。在未說明的情況下,下面使用的是卡迪爾坐標系臊岸。

所謂線性變換是指兩個線性空間的映射橙数,一個變換

是線性變換,必須滿足兩個條件帅戒,也就是我們經(jīng)常說的線性條件:

additivity

homogeneity

舉個例子說明一下灯帮。建設(shè)

是一個二維繞原點旋轉(zhuǎn)變換,

是旋轉(zhuǎn)角度逻住。我們知道“一次性旋轉(zhuǎn)

度”和“先旋轉(zhuǎn)

度再旋轉(zhuǎn)

讀”達到的效果是一樣的钟哥;同樣地,“一次性旋轉(zhuǎn)

度”和“旋轉(zhuǎn)

次u度”也是一張的鄙信。

線性變換可以用矩陣來表示瞪醋。假設(shè)

是二維空間中的點忿晕,T是一線性變換装诡,那么存在一個矩陣A,使得

践盼。上面的旋轉(zhuǎn)變換R鸦采,以及縮放S變換都有相應(yīng)的變換矩陣

但是在卡迪爾坐標系中,平移變換卻不能用矩陣來表示咕幻。一個平移變換T具有如下的形式

+

我們可以很容易地驗證渔伯,平移變換T是不能寫成兩個矩陣乘積形式的。使用齊次坐標系很好的解決了這個問題(可能還有其它的原因)肄程。齊次坐標系統(tǒng)其實是用高維坐標來表示一個低維的點锣吼,就好比我們用(x,1)來表示一個長度值一樣,其實用一個x就可以了蓝厌,但是用高一維的表示玄叠,在有的時候會帶來便利。一個N維的卡迪爾坐標系中的一個點

拓提,在齊次坐標系中有無數(shù)的N+1維點與之對應(yīng)读恃,這些點可以描述為

取不同的值代态,我們變得到齊次坐標系中不同的點寺惫。當把這些點映射到

平面(不改變

之間比例),我們又降維得到對應(yīng)的卡迪爾坐標系中的點蹦疑。在OpenGL中我們是用

(

)來表示一點三維的點西雀,顯然這個點與卡迪爾坐標系中的點

是一一對應(yīng)的。在計算的過程中歉摧,會出現(xiàn)第四個分量不為

的情況蒋搜,這時我們也總是同除以

使齊次坐標正規(guī)化〈勰欤現(xiàn)在回來讓我們看看使用齊次坐標時,對應(yīng)的線性變換是什么形式豆挽。假設(shè)

是二維點對應(yīng)的齊次坐標育谬,與上面使用卡迪爾坐標系類似,我們可以得到相應(yīng)的線性變換如旋轉(zhuǎn)變換R和縮放變換S的矩陣表示:

容易驗證,

的值并沒有變化帮哈。但是使用齊次坐標后膛檀,平移操作便也可以使用矩陣來表示了(如下),平移量出現(xiàn)在變換矩陣的最右側(cè)娘侍。

最后咖刃,我們給出仿射變換稍微正式點的定義。一個仿射變換T憾筏,可以表示成一個線性變換A后平移tT(p)=Ap+t嚎杨,其中p是待變換的點齊次坐標表示。T可以表示成如下的形式:

其中氧腰,表示線性變換枫浙;表示平移變換;右下角的數(shù)字可以進行整體縮放古拴,當為1時箩帚,表示不進行整體縮放。

仿射變換之所以重要黄痪,另一個重要的原因是仿射變換后不改變點的共線/共面性紧帕,而且還保持比例,這對圖形系統(tǒng)尤其重要桅打。例如是嗜,根據(jù)這個性質(zhì),如果我們要變換一個三角形挺尾,只需要對三個定點v1,v2,v3進行變換T就可以了鹅搪,對于原先邊v1v2上的點,變換后一定還在邊后T(v1)T(v2)上潦嘶。

總結(jié)一下涩嚣,仿射變換是線性變換后進行平移變換(其實也是齊次空間的線性變換),使用齊次坐標使得仿射變換可以以統(tǒng)一的矩陣形式進行表示掂僵。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末航厚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子锰蓬,更是在濱河造成了極大的恐慌幔睬,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芹扭,死亡現(xiàn)場離奇詭異麻顶,居然都是意外死亡赦抖,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門辅肾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來队萤,“玉大人,你說我怎么就攤上這事矫钓∫” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵新娜,是天一觀的道長赵辕。 經(jīng)常有香客問我,道長概龄,這世上最難降的妖魔是什么还惠? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮私杜,結(jié)果婚禮上蚕键,老公的妹妹穿的比我還像新娘。我一直安慰自己歪今,他們只是感情好嚎幸,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布颜矿。 她就那樣靜靜地躺著寄猩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪骑疆。 梳的紋絲不亂的頭發(fā)上田篇,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音箍铭,去河邊找鬼泊柬。 笑死,一個胖子當著我的面吹牛诈火,可吹牛的內(nèi)容都是我干的兽赁。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼冷守,長吁一口氣:“原來是場噩夢啊……” “哼刀崖!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拍摇,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤亮钦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后充活,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜂莉,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蜡娶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了映穗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窖张。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蚁滋,靈堂內(nèi)的尸體忽然破棺而出荤堪,到底是詐尸還是另有隱情,我是刑警寧澤枢赔,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布澄阳,位于F島的核電站,受9級特大地震影響踏拜,放射性物質(zhì)發(fā)生泄漏碎赢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一速梗、第九天 我趴在偏房一處隱蔽的房頂上張望肮塞。 院中可真熱鬧,春花似錦姻锁、人聲如沸枕赵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拷窜。三九已至,卻和暖如春涧黄,著一層夾襖步出監(jiān)牢的瞬間篮昧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工笋妥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留懊昨,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓春宣,卻偏偏與公主長得像酵颁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子月帝,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容