矩陣變換學(xué)習(xí)筆記

二維矩陣變換:

我們把每個點(diǎn)坐標(biāo)A(x, y)看成一個行向量a(x, y),采用齊次坐標(biāo)法收壕,即每個頂點(diǎn)坐標(biāo)增加一個相同的分量1作為矩陣的一行,即(x轨蛤,y蜜宪,1)

1.平移:

平移向量P為(a,b)祥山,點(diǎn)A(x圃验,y)平移后變?yōu)锳'(x + a, y + b)

點(diǎn)A的矩陣為[x枪蘑, y损谦, 1]岖免,平移變換矩陣為
\left[ \begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ a & b & 1 \end{matrix} \right]

點(diǎn)A的矩陣乘以平移變換矩陣得到平移后的矩陣為

\begin{matrix} A & 平移矩陣 & & 平移后的矩陣A'\\ \left[\begin{array}{rr} x & y & 1 \end{array}\right] & \left[\begin{array}{rr} 1 & 0 & 0 \\ 0 & 1 & 0 \\ a & b & 1 \\ \end{array}\right] & = & \left[\begin{array}{rr} x + a & y + b & 1 \end{array}\right] \end{matrix}

2.旋轉(zhuǎn)

旋轉(zhuǎn)中心是坐標(biāo)原點(diǎn)。旋轉(zhuǎn)角度是β照捡。
矩陣中的θ是圖形繞坐標(biāo)原點(diǎn)逆時(shí)針旋轉(zhuǎn)的角度颅湘。
旋轉(zhuǎn)變換矩陣
\left[ \begin{matrix} cosθ & sinθ & 0 \\ -sinθ & cosθ & 0 \\ 0 & 0 & 1 \end{matrix} \right]
點(diǎn)A的矩陣[x, y, 1]乘以旋轉(zhuǎn)矩陣得到矩陣A'
\begin{matrix} A & 旋轉(zhuǎn)矩陣 & & 旋轉(zhuǎn)后的矩陣A'\\ \left[\begin{array}{rr} x & y & 1 \end{array}\right] & \left[\begin{array}{rr} cosθ & sinθ & 0 \\ -sinθ & cosθ & 0 \\ 0 & 0 & 1 \end{array}\right] & = & \left[\begin{array}{rr} xcosθ - ysinθ & xsinθ + ycosθ & 1 \end{array}\right] \end{matrix}

3.縮放

縮放中心是坐標(biāo)原點(diǎn),點(diǎn)(x,y)縮放到點(diǎn)(my,ny)栗精,m闯参、n是縮放因子。
縮放變換矩陣:
\left[ \begin{matrix} m & 0 & 0 \\ 0 & n & 0 \\ 0 & 0 & 1 \end{matrix} \right]
點(diǎn)A(x,y)悲立,則點(diǎn)A的矩陣為[x鹿寨, y ,1]薪夕;當(dāng)點(diǎn)A的矩陣乘以縮放變換矩陣可以得到縮放后點(diǎn)的矩陣為:
\begin{matrix} A & 旋轉(zhuǎn)矩陣 & & 旋轉(zhuǎn)后的矩陣A'\\ \left[\begin{array}{rr} x & y & 1 \end{array}\right] & \left[\begin{array}{rr} m & 0 & 0 \\ 0 & n & 0 \\ 0 & 0 & 1 \end{array}\right] & = & \left[\begin{array}{rr} mx & ny & 1 \end{array}\right] \end{matrix}

4.對稱
(1)x軸對稱

A(x脚草,y) --> A'(x, -y)

對稱矩陣

\left[ \begin{matrix} 1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 1 \end{matrix} \right]

(2) y軸對稱

A(x, y) --> A'(-x, y)
對稱矩陣
\left[ \begin{matrix} 1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 1 \end{matrix} \right]

(3)原點(diǎn)對稱

A(x, y) --> A'(-x, -y)
對稱矩陣
\left[ \begin{matrix} -1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 1 \end{matrix} \right]

5.錯切變換

(1)圖形關(guān)于X軸方向的錯切變換,各點(diǎn)的縱坐標(biāo)不變:
A(x, y) --> A'(x + cy , y)
關(guān)于X軸錯切變換矩陣為:
\left[ \begin{matrix} 1 & 0 & 0 \\ c & 1 & 0 \\ 0 & 0 & 1 \end{matrix} \right]

(2)圖形關(guān)于Y軸方向的錯切變換原献,各點(diǎn)的橫坐標(biāo)不變:
A(x, y) --> A'(x , y + cx)
關(guān)于X軸錯切變換矩陣為:
關(guān)于Y軸錯切變換矩陣為:
\left[ \begin{matrix} 1 & c & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{matrix} \right]

6.組合變換

組合變換就是上面所介紹的平移變換馏慨,縮放變換,旋轉(zhuǎn)變換姑隅, 對稱變換写隶,錯切變換的相互作用之后產(chǎn)生的變換。

所有的圖形變換都是基本變換的組合讲仰,這樣圖形變換就容易多了

參考:
https://blog.csdn.net/a396901990/article/details/44905791

三維矩陣變換

對三維空間的點(diǎn)P=[X Y Z]慕趴,采用規(guī)范齊次坐標(biāo)則與二維情況類似

1.平移變換

平移向量P為(tx,ty鄙陡,tz)冕房,點(diǎn)A(x,y柔吼,z)平移后變?yōu)锳'(x + tx毒费, y + ty丙唧,z + tz)
點(diǎn)A的矩陣為[x愈魏, y, z想际,1]培漏,平移變換矩陣為
\left[ \begin{matrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1& 0\\ tx & ty &tz & 1\\ \end{matrix} \right]
點(diǎn)A的矩陣乘以平移變換矩陣得到平移后的矩陣為
\begin{matrix} A & 平移矩陣 & & 平移后的矩陣A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ tx & ty & tz & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} x + tx & y + ty & z + tz & 1 \end{array}\right] \end{matrix}

2.旋轉(zhuǎn)

矩陣中的θ是圖形繞坐標(biāo)軸逆時(shí)針旋轉(zhuǎn)的角度。

(1)繞z軸旋轉(zhuǎn)

A(x胡本,y牌柄,z)旋轉(zhuǎn)后變?yōu)锳'(xcosθ - ysinθ, xsinθ + ycosθ侧甫, z)
旋轉(zhuǎn)變換矩陣
\left[ \begin{matrix} cosθ & sinθ & 0 & 0\\ -sinθ & cosθ & 0 & 0\\ 0 & 0 & 1& 0\\ 0 & 0 & 0 & 1\\ \end{matrix} \right]

點(diǎn)A的矩陣乘以旋轉(zhuǎn)變換矩陣得到旋轉(zhuǎn)后的矩陣為
\begin{matrix} A & 繞z軸旋轉(zhuǎn)矩陣 & & 旋轉(zhuǎn)后的矩陣A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} cosθ & sinθ & 0 & 0\\ -sinθ & cosθ & 0 & 0\\ 0 & 0 & 1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} xcosθ - ysinθ & xsinθ + ycosθ & z & 1 \end{array}\right] \end{matrix}

(2)繞x軸旋轉(zhuǎn)

A(x珊佣,y蹋宦,z)旋轉(zhuǎn)后變?yōu)锳'(x, ycosθ - zsinθ咒锻, ysinθ + zcosθ)
旋轉(zhuǎn)變換矩陣
\left[ \begin{matrix} 1& 0 & 0 & 0\\ 0 & cosθ & sinθ & 0\\ 0 & -sinθ & cosθ& 0\\ 0 & 0 & 0 & 1\\ \end{matrix} \right]
點(diǎn)A的矩陣乘以旋轉(zhuǎn)變換矩陣得到旋轉(zhuǎn)后的矩陣為
\begin{matrix} A & 繞z軸旋轉(zhuǎn)矩陣 & & 旋轉(zhuǎn)后的矩陣A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & cosθ & sinθ & 0\\ 0 & -sinθ & cosθ& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} x & ycosθ - zsinθ & ysinθ + zcosθ & 1 \end{array}\right] \end{matrix}

(3)繞y軸旋轉(zhuǎn)

A(x冷冗,y,z)旋轉(zhuǎn)后變?yōu)锳'(xcosθ + zsinθ惑艇,y蒿辙, zcosθ - xsinθ)
旋轉(zhuǎn)變換矩陣
\left[ \begin{matrix} cosθ& 0 & -sinθ & 0\\ 0 & 1 & 0 & 0\\ sinθ & 0& cosθ& 0\\ 0 & 0 & 0 & 1\\ \end{matrix} \right]
點(diǎn)A的矩陣乘以旋轉(zhuǎn)變換矩陣得到旋轉(zhuǎn)后的矩陣為
\begin{matrix} A & 繞y軸旋轉(zhuǎn)矩陣 & & 旋轉(zhuǎn)后的矩陣A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} cosθ& 0 & -sinθ & 0\\ 0 & 1 & 0 & 0\\ sinθ & 0& cosθ& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} xcosθ + zsinθ & y & zcosθ - xsinθ & 1 \end{array}\right] \end{matrix}

3.縮放
(1)局部縮放

相對坐標(biāo)原點(diǎn)的比例變換
A(x,y滨巴,z)旋轉(zhuǎn)后變?yōu)锳'(xSx思灌, ySy, zSz), Sx, Sy, Sz為縮放因子
縮放變換矩陣
\left[ \begin{matrix} Sx& 0 & 0 & 0\\ 0 & Sy & 0 & 0\\ 0 & 0& Sz& 0\\ 0 & 0 & 0 & 1\\ \end{matrix} \right]

點(diǎn)A的矩陣乘以縮放變換矩陣得到旋轉(zhuǎn)后的矩陣為
\begin{matrix} A & 縮放矩陣 & & 縮放后的矩陣A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} Sx& 0 & 0 & 0\\ 0 & Sy & 0 & 0\\ 0 & 0& Sz& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} xSx & ySy & zSz & 1 \end{array}\right] \end{matrix}

(2)整體縮放

縮放矩陣為
\left[ \begin{matrix} 1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & s\\ \end{matrix} \right]
點(diǎn)A的矩陣乘以縮放變換矩陣得到旋轉(zhuǎn)后的矩陣為
\begin{matrix} A & 縮放矩陣 & & 縮放后的矩陣A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & s\\ \end{array}\right] & = & \left[\begin{array}{rr} x/s & y/s & z/s & 1 \end{array}\right] \end{matrix}

4.對稱變換
(1)關(guān)于對稱平面變換
1.1關(guān)于xoy平面對稱變換

\begin{matrix} \left[\begin{array}{rr} x' & y' & z' & 1 \end{array}\right] & = & \left[\begin{array}{rr} x & y & -z & 1 \end{array}\right] \end{matrix}

\begin{matrix} T & = & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& -1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] \end{matrix}

\begin{matrix} A & 變換矩陣 & & 變換后的矩陣A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& -1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} x & y & -z & 1 \end{array}\right] \end{matrix}

1.2關(guān)于xoz平面對稱變換

\begin{matrix} \left[\begin{array}{rr} x' & y' & z' & 1 \end{array}\right] & = & \left[\begin{array}{rr} x & -y & z & 1 \end{array}\right] \end{matrix}

\begin{matrix} T & = & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] \end{matrix}

\begin{matrix} A & 變換矩陣 & & 變換后的矩陣A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} x & -y & z & 1 \end{array}\right] \end{matrix}

1.3關(guān)于yoz平面對稱變換

\begin{matrix} \left[\begin{array}{rr} x' & y' & z' & 1 \end{array}\right] & = & \left[\begin{array}{rr} -x & y & z & 1 \end{array}\right] \end{matrix}

\begin{matrix} T & = & \left[\begin{array}{rr} -1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] \end{matrix}

\begin{matrix} A & 變換矩陣 & & 變換后的矩陣A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} -1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} -x & y & z & 1 \end{array}\right] \end{matrix}

(2)關(guān)于對稱軸變換
2.1關(guān)于x軸對稱變換

\begin{matrix} \left[\begin{array}{rr} x' & y' & z' & 1 \end{array}\right] & = & \left[\begin{array}{rr} x & -y & -z & 1 \end{array}\right] \end{matrix}

\begin{matrix} T & = & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0& -1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] \end{matrix}

\begin{matrix} A & 變換矩陣 & & 變換后的矩陣A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0& -1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} x & -y & -z & 1 \end{array}\right] \end{matrix}

2.2關(guān)于y軸對稱變換

\begin{matrix} \left[\begin{array}{rr} x' & y' & z' & 1 \end{array}\right] & = & \left[\begin{array}{rr} -x & y & -z & 1 \end{array}\right] \end{matrix}

\begin{matrix} T & = & \left[\begin{array}{rr} -1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& -1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] \end{matrix}

\begin{matrix} A & 變換矩陣 & & 變換后的矩陣A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} -1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& -1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} -x & y & -z & 1 \end{array}\right] \end{matrix}

2.3關(guān)于z軸對稱變換

\begin{matrix} \left[\begin{array}{rr} x' & y' & z' & 1 \end{array}\right] & = & \left[\begin{array}{rr} -x & -y & 1z & 1 \end{array}\right] \end{matrix}

\begin{matrix} T & = & \left[\begin{array}{rr} -1& 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] \end{matrix}

\begin{matrix} A & 變換矩陣 & & 變換后的矩陣A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} -1& 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} -x & -y & z & 1 \end{array}\right] \end{matrix}

三維變換矩陣的功能分塊

\left[ \begin{array}{ccc|c} a11& a21 & a31 & Px\\ a12 & a22 & a32 & Py\\ a13 & a23& a33& Pz\\ \hline tx & ty & tz & s\\ \end{array} \right]
左下角三維平移變換部分恭取,左上角三維線性變換部分泰偿,右上角透視變換部分,右下角整體比例因子

任何三維變換都可以轉(zhuǎn)換為基本三維變換的組合
比如繞任意軸旋轉(zhuǎn)蜈垮,可通過平移甜奄,旋轉(zhuǎn)等基本三維變換轉(zhuǎn)換為繞某坐標(biāo)軸旋轉(zhuǎn);

參考:
https://blog.csdn.net/piaoxuezhong/article/details/70171525

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窃款,一起剝皮案震驚了整個濱河市课兄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌晨继,老刑警劉巖烟阐,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異紊扬,居然都是意外死亡蜒茄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門餐屎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來檀葛,“玉大人,你說我怎么就攤上這事腹缩∮炝” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵藏鹊,是天一觀的道長润讥。 經(jīng)常有香客問我,道長盘寡,這世上最難降的妖魔是什么楚殿? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮竿痰,結(jié)果婚禮上脆粥,老公的妹妹穿的比我還像新娘砌溺。我一直安慰自己,他們只是感情好变隔,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布抚吠。 她就那樣靜靜地躺著,像睡著了一般弟胀。 火紅的嫁衣襯著肌膚如雪楷力。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天孵户,我揣著相機(jī)與錄音萧朝,去河邊找鬼。 笑死夏哭,一個胖子當(dāng)著我的面吹牛检柬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播竖配,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼何址,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了进胯?” 一聲冷哼從身側(cè)響起用爪,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胁镐,沒想到半個月后偎血,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盯漂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年颇玷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片就缆。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡帖渠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出竭宰,到底是詐尸還是另有隱情空郊,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布羞延,位于F島的核電站渣淳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏伴箩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一鄙漏、第九天 我趴在偏房一處隱蔽的房頂上張望嗤谚。 院中可真熱鬧棺蛛,春花似錦、人聲如沸巩步。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽椅野。三九已至终畅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間竟闪,已是汗流浹背离福。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留炼蛤,地道東北人妖爷。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像理朋,于是被迫代替她去往敵國和親絮识。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359

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