圖形學(xué) 位移乞娄,旋轉(zhuǎn),縮放矩陣變換

1. 位移(translation)

對于一個(gè)三維坐標(biāo)(x, y, z)显歧,我們想讓它往x軸正方向移動(dòng)1個(gè)單位仪或,往y軸正方向移動(dòng)1個(gè)單位,往z軸正方向移動(dòng)1個(gè)單位士骤,則可以讓它加上一個(gè)向量(1, 1, 1)

2. 旋轉(zhuǎn)(Rotation)

對于一個(gè)三維坐標(biāo)(x, y, z)范删,讓其繞x, y, z軸旋轉(zhuǎn)θ角的方法是在其左邊乘上一個(gè)旋轉(zhuǎn)矩陣。繞x軸拷肌,繞y軸到旦,繞z軸的旋轉(zhuǎn)矩陣分別是:



PS:如果我們想更加通用一點(diǎn),即點(diǎn)(x, y, z)繞軸(u, v, w)旋轉(zhuǎn)θ的矩陣是什么巨缘?
如果u, v, w三者的平方和為1添忘,即該向量是個(gè)單位向量,那么矩陣如下:


3. 縮放(scale)

對于一個(gè)三維坐標(biāo)(x, y, z)若锁,我們想讓它擴(kuò)大2倍搁骑,則可以讓它變成(2x, 2y, 2z)。寫成矩陣乘法的話,V2 = M*V1仲器,M如下圖:



4. 統(tǒng)一變換

有沒有什么方法讓位移煤率,旋轉(zhuǎn),縮放都成為統(tǒng)一的一種形式乏冀?
答:將三維坐標(biāo)轉(zhuǎn)換為四維坐標(biāo)蝶糯,然后使用線性變換。

線性變換(Linear Transformation / Xforms)是渲染和游戲引擎等圖形學(xué)工具進(jìn)行坐標(biāo)變換的方式煤辨,是可逆的裳涛。
線性變換的等式如下:
V2 = M*V1

  • V是齊次(homogeneous)四維向量(x,y,z,w),豎著寫的
  • M是齊次4×4矩陣
  • 當(dāng)w=1時(shí)众辨,四維坐標(biāo)會(huì)變成三維坐標(biāo)

對于三維坐標(biāo)(x, y, z)端三,將其轉(zhuǎn)換為四維坐標(biāo),可以直接加個(gè)1鹃彻,即變成(x, y, z, 1)
對于四維坐標(biāo)(x, y, z, w)郊闯,都除以w即可轉(zhuǎn)換為三維坐標(biāo),即(x/w, y/w, z/w)

1. 四維位移

這個(gè)圖要從右向左看

從上圖中可以看到蛛株,四維位移矩陣团赁,是在一個(gè)四維單位矩陣(就是對角線都是1,其他都是0的矩陣)的最后一列谨履,放入你想要位移的向量(tx, ty, tz)

2. 四維旋轉(zhuǎn)

繞x軸轉(zhuǎn)θ

從上圖中可以看到欢摄,四維旋轉(zhuǎn)矩陣,是在我們上面剛說的三維繞軸旋轉(zhuǎn)矩陣的基礎(chǔ)上笋粟,在最后一行和最后一列補(bǔ)上一個(gè)(0怀挠,0,0害捕,1)绿淋。

3. 四維縮放

從右向左看

和旋轉(zhuǎn)一個(gè)道理。

5. 四維變換的性質(zhì)

  1. 可關(guān)聯(lián)(associative)
    你可以讓一個(gè)坐標(biāo)乘上一個(gè)旋轉(zhuǎn)矩陣尝盼,再乘上一個(gè)位移矩陣吞滞,再乘上一個(gè)縮放矩陣,再乘上一個(gè)旋轉(zhuǎn)矩陣………………

  2. 旋轉(zhuǎn)和縮放矩陣可交換(communicative)
    先旋轉(zhuǎn)后縮放和先縮放后旋轉(zhuǎn)的結(jié)果是一樣的盾沫。RS = SR
    位移不滿足交換律
    先位移再旋轉(zhuǎn)和先旋轉(zhuǎn)再位移結(jié)果是不一樣的裁赠!因?yàn)樾D(zhuǎn)之后模型的正面朝向就變了,所以會(huì)向新的方向位移赴精。
    TS!=ST, TR!=RT

  3. 對于任何一個(gè)線性變換矩陣组贺,我們可以把它拆解(decompose)為TRS或TSR三個(gè)矩陣的乘積的形式。



    1)首先提取最后一列祖娘,得到位移
    2)剩余的矩陣是R和S相乘的矩陣
    我們可以先看一下S和R相乘的結(jié)果是什么樣的


    SR相乘, 以Z軸旋轉(zhuǎn)為例

    從圖中可以看出失尖,SR矩陣啊奄,第一行的平方和開根就是Sx,第二行的平方和開根就是Sy掀潮,第三行的平方和開根就是Sz菇夸。第一行除以Sx,第二行除以Sy仪吧,第三行除以Sz庄新,即可得到旋轉(zhuǎn)矩陣。

6. 四維變換的逆變換

由于線性變換是可逆的薯鼠,所以我們可以看一下位移旋轉(zhuǎn)縮放的逆矩陣择诈。
1. 位移
T的逆矩陣是-T,即向反方向移動(dòng)出皇。
2. 旋轉(zhuǎn)
R的逆矩陣是R的轉(zhuǎn)置矩陣羞芍,即以對角線翻轉(zhuǎn)矩陣。
怎么理解呢郊艘?比如R是繞X軸旋轉(zhuǎn)θ荷科,那么逆操作就是繞X軸旋轉(zhuǎn),帶入-θ就會(huì)發(fā)現(xiàn)它變成了轉(zhuǎn)置矩陣纱注。
3. 縮放
S的逆矩陣是1/S畏浆,即把對角線上的三個(gè)元素都變成倒數(shù),即反向縮放狞贱。
4. 線性變換Xforms
TSR的逆矩陣 = R的逆×S的逆×T的逆

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末刻获,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瞎嬉,更是在濱河造成了極大的恐慌将鸵,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件佑颇,死亡現(xiàn)場離奇詭異,居然都是意外死亡草娜,警方通過查閱死者的電腦和手機(jī)挑胸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宰闰,“玉大人茬贵,你說我怎么就攤上這事∫婆郏” “怎么了解藻?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長葡盗。 經(jīng)常有香客問我螟左,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任胶背,我火速辦了婚禮巷嚣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钳吟。我一直安慰自己廷粒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布红且。 她就那樣靜靜地躺著坝茎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪暇番。 梳的紋絲不亂的頭發(fā)上嗤放,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機(jī)與錄音奔誓,去河邊找鬼斤吐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛厨喂,可吹牛的內(nèi)容都是我干的和措。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼蜕煌,長吁一口氣:“原來是場噩夢啊……” “哼派阱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起斜纪,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤贫母,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后盒刚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腺劣,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年因块,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了橘原。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涡上,死狀恐怖趾断,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吩愧,我是刑警寧澤芋酌,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站雁佳,受9級特大地震影響脐帝,放射性物質(zhì)發(fā)生泄漏同云。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一腮恩、第九天 我趴在偏房一處隱蔽的房頂上張望梢杭。 院中可真熱鬧,春花似錦秸滴、人聲如沸武契。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咒唆。三九已至,卻和暖如春释液,著一層夾襖步出監(jiān)牢的瞬間全释,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工误债, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浸船,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓寝蹈,卻偏偏與公主長得像李命,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子箫老,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

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

  • 1 前言 OpenGL渲染3D模型離不開空間幾何的數(shù)學(xué)理論知識封字,而本篇文章的目的就是對空間幾何進(jìn)行簡單的介紹,并對...
    RichardJieChen閱讀 6,936評論 1 11
  • 變換(Transformations) 我們可以嘗試著在每一幀改變物體的頂點(diǎn)并且重設(shè)緩沖區(qū)從而使他們移動(dòng)耍鬓,但這太繁...
    IceMJ閱讀 4,088評論 0 1
  • 版本記錄 前言 OpenGL 圖形庫項(xiàng)目中一直也沒用過阔籽,最近也想學(xué)著使用這個(gè)圖形庫,感覺還是很有意思牲蜀,也就自然想著...
    刀客傳奇閱讀 5,112評論 0 3
  • 引言 請不要質(zhì)疑你的眼睛笆制,文章的題目就是“3D圖形學(xué)基礎(chǔ)理論”』链铮可能有人要疑惑了在辆,作為一個(gè) iOS 開發(fā)者為什么要...
    ZhengYaWei閱讀 8,546評論 5 36
  • 去年我曾在短時(shí)間內(nèi)高密度地投遞簡歷、參加面試峭判,崗位涉及市場、運(yùn)營棕叫、商務(wù)林螃、渠道、產(chǎn)品等俺泣,經(jīng)過前后十多家公司的面試疗认,整...
    一井閱讀 1,858評論 7 99