4X4齊次矩陣
一宜雀、4D齊次空間
4D向量有4個(gè)分量本橙,前3個(gè)是標(biāo)準(zhǔn)的x,y,z,第四個(gè)是w锅减,有時(shí)稱作齊次坐標(biāo)糖儡。
為了理解標(biāo)準(zhǔn)3D坐標(biāo)是怎樣擴(kuò)展到4D坐標(biāo) 的,先看一下2D中的齊次坐標(biāo)怔匣,它的形式為(x,y,z,w)握联。想象在3D中w=1處的標(biāo)準(zhǔn)2D平面。實(shí)際的2D點(diǎn)(x,y)用齊次坐標(biāo)表示為(x,y,1)每瞒,對(duì)于那些不在w=1平面上的點(diǎn)金闽,則將他們投影到w=1 的平面上。所以齊次坐標(biāo)(x,y,w)映射的實(shí)際2D點(diǎn)為(x/w,y/w,1)剿骨。
因此給定一個(gè)2D點(diǎn)(x,y)代芜,齊次坐標(biāo)空間中有無(wú)數(shù)個(gè)點(diǎn)與之相對(duì)應(yīng)。所有點(diǎn)的形式都為(kx,ky,k),k≠0浓利。這些點(diǎn)構(gòu)成一條穿過齊次原點(diǎn)的直線挤庇。
當(dāng)w=0時(shí),除法是沒有意義的贷掖,因此不存在實(shí)際的2D點(diǎn)嫡秕,但可以認(rèn)為點(diǎn)(x,y,0)位于無(wú)窮遠(yuǎn)的點(diǎn)。這樣就變成了描述一個(gè)方向而不是一個(gè)位置苹威。
4D坐標(biāo)的基本思想相同昆咽。可以認(rèn)為3D點(diǎn)實(shí)在4D中W=1的“平面”上。4D點(diǎn)的形式為(x,y,z,w)掷酗,將4D點(diǎn)投影到這個(gè)“平面”上调违,得到相應(yīng)3D點(diǎn)(x/w,y/w,z/w,1)。w=0時(shí)表示無(wú)限遠(yuǎn)的點(diǎn)汇在。描述的是方向翰萨,而不是位置脏答。
而為什么會(huì)使用4D齊次坐標(biāo)來(lái)表示變換糕殉,我個(gè)人覺得其實(shí)就是一種數(shù)學(xué)技巧,比如用4D來(lái)表示位移殖告。
二阿蝶、4X4平移矩陣
3X3變換矩陣表示的是線性變換,不包含平移黄绩。因?yàn)榫仃嚦朔ǖ男再|(zhì)羡洁,零向量總是變換成零向量(如果想把(0,0,0)點(diǎn)平移,是無(wú)法做到的)爽丹,因此任何能用矩陣乘法表達(dá)的變換都不包含平移筑煮。
即使是在4D中,矩陣乘法仍然是線性變換粤蝎。矩陣乘法不能表達(dá)4D中的“平移”真仲,4D零向量也總是被換成零向量。這個(gè)技巧之所以能在3D中平移點(diǎn)是因?yàn)閷?shí)際上是在切邊4D空間初澎,與實(shí)際3D空間相對(duì)應(yīng)的4D中的“平面”并沒有穿過4D中的原點(diǎn)秸应。因此可以用4D表示3D的平移。
一般性變換:
其實(shí)所有變換都是旋轉(zhuǎn)碑宴,縮放软啼,平移的任意組合。
三延柠、一般仿射變換
用3X3矩陣僅能表達(dá)3D中的線性變換祸挪,沒有加入平移。通過加入4X4的矩陣贞间,使得平移也可以是"線性變換"匕积,就可以構(gòu)造包含平移在內(nèi)的一般仿射變換矩陣了,如:
①繞不通過原點(diǎn)的軸旋轉(zhuǎn)
②沿不穿過原點(diǎn)的平面縮放
③沿不穿過原點(diǎn)的鏡像
④向不穿過原點(diǎn)的平面投影
之所以可以這樣做榜跌,就是因?yàn)榧尤肓似揭粕了簟R话岬淖兓际窍绕揭频侥硞€(gè)坐標(biāo)系下,然后進(jìn)行旋轉(zhuǎn)縮放等钓葫,然后在反向平移回來(lái)悄蕾,以達(dá)到我們想要的坐標(biāo)點(diǎn)。