1,矩陣相乘
The most basic application of matrices is solving systems of linear equations.
2x+1y = 3;
4x+ 3y = 7;
關(guān)鍵就是一句話,矩陣的本質(zhì)就是線性方程式,兩者是一一對(duì)應(yīng)關(guān)系。如果從線性方程式的角度,理解矩陣乘法就毫無難度。
下面是一組線性方程式。
矩陣的最初目的,只是為線性方程組提供一個(gè)簡(jiǎn)寫形式。
老實(shí)說,從上面這種寫法,已經(jīng)能看出矩陣乘法的規(guī)則了:系數(shù)矩陣第一行的2和1,各自與 x 和 y 的乘積之和,等于3。不過,這不算嚴(yán)格的證明,只是線性方程式轉(zhuǎn)為矩陣的書寫規(guī)則。
下面才是嚴(yán)格的證明。有三組未知數(shù) x、y 和 t,其中 x 和 y 的關(guān)系如下。
x 和 t 的關(guān)系如下。
有了這兩組方程式,就可以求 y 和 t 的關(guān)系。從矩陣來看,很顯然,只要把第二個(gè)矩陣代入第一個(gè)矩陣即可。
從方程式來看,也可以把第二個(gè)方程組代入第一個(gè)方程組。
上面的方程組可以整理成下面的形式。
最后那個(gè)矩陣等式,與前面的矩陣等式一對(duì)照,就會(huì)得到下面的關(guān)系。
矩陣乘法的計(jì)算規(guī)則,從而得到證明。
2,
圖形變換讓一個(gè)3d物體在屏幕中變換的時(shí)候看上去保持有深度的錯(cuò)覺,也就是立體的投影效果。
實(shí)現(xiàn)立體效果的方法是使用一個(gè)經(jīng)過多次相乘的變換矩陣得到的最終變換矩陣來和頂點(diǎn)的位置再相乘,這樣得到3d物體的一個(gè)多次變換后的最終復(fù)合變換效果。
實(shí)現(xiàn)平移的一種辦法是設(shè)置一個(gè)偏移向量(這里就是- 1,1 了),并把這個(gè)便宜向量定義成一致變量然后傳遞給shader讓每一個(gè)頂點(diǎn)按照那個(gè)偏移向量移動(dòng)即可。但這樣就打破通過乘以一個(gè)經(jīng)過多個(gè)變換矩陣相乘得到的復(fù)合變換矩陣來進(jìn)行復(fù)合變換的統(tǒng)一性了。
另外,如果平移變換變換不是一系列復(fù)合變換的第一個(gè)的話,你要先乘以平移變換之前的幾個(gè)變換的復(fù)合變換矩陣,然后按照上面的方法平移圖形,然后再乘以平移變換后面的復(fù)合變換矩陣(如果不止一個(gè)平移變換那么就要繼續(xù)分解更繁瑣了)
3,
一個(gè)更好的辦法是找到一個(gè)表示平移變換的矩陣,并加入到復(fù)合變換中作為復(fù)合變換中的其中一種變換。
我們是想找到這樣一個(gè)矩陣,對(duì)于給定的點(diǎn)P(x,y,z)和平移向量V(v1,v2,v3),能夠使 M * P = P1(x+v1, y+v2, z+v3),簡(jiǎn)單地說就是矩陣M將P轉(zhuǎn)換成了P+V。
對(duì)于得到P本身的向量
4,