OpenGL 3D數(shù)學(xué)

1.標(biāo)量與向量相乘

k * [x, y, z] = [x, y, z] * k = [kx, ky, kz]

2.向量與標(biāo)量相除等于向量乘以標(biāo)量的 1/k

[x, y, z] / k = [1/kx, 1/ky, 1/k*z]

結(jié)論:標(biāo)量與向量相乘相除幾何意義是對(duì)向量的放大縮小--縮放

3. 向量加減法

[x1, y1, z1] + [x2, y2, z2] = [x1+x2, y1+y2, z1+z2]
[x1, y1, z1] -[x2, y2, z2] = [x1-x2, y1-y2, z1-z2]

結(jié)論:向量與向量加減法的幾何意義是--平移

結(jié)論:

1.向量不能與標(biāo)量相加減,沒(méi)有意義
2.向量不能與不同維度的向量相加減

4.向量點(diǎn)乘幾何意義-獲取角度

a.b可以通過(guò)公式計(jì)算兩個(gè)向量之間的角度-點(diǎn)乘必須是單位向量

5.向量叉乘的幾何意義-獲取垂直與a和b的向量

ab指向該平面的正上方,垂直于a和b,ab的長(zhǎng)度等于向量的大小與向量夾角sin值的積 ab = ||a||||b||*sin(ab夾角)

6. 單元矩陣

1.單元矩陣,行列相等,坐上到右下對(duì)角線位置為1,其余全是0

二維單元矩陣
1 0
0 1

三維單元矩陣
1 0 0
0 1 0
0 0 1

四維單元矩陣
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

結(jié)論

單元矩陣非常特殊,因?yàn)樗蔷仃嚦朔▎挝辉?,其基本性質(zhì)是用任意1個(gè)矩陣乘以單元矩陣,都將得到原矩陣。所以在某種意義上對(duì)矩陣的作用猶如1對(duì)標(biāo)量的作用

7.方陣

行數(shù)和列數(shù)相同的矩陣,成為方陣,OpenGL里面主要討論的范疇是 22 33 4*4方陣,單元矩陣是一種特殊的方陣

8.向量與矩陣

1.向量是特殊的矩陣,行向量x, y, z可以看做1行3列的矩陣,列向量x, y, z可以看做3行1列的矩陣

9.矩陣轉(zhuǎn)置

行變列,列變行,轉(zhuǎn)置的轉(zhuǎn)置就是原矩陣

10.矩陣相乘

矩陣相乘規(guī)則,矩陣A * 矩陣B, A的列==B的行,的出來(lái)的矩陣是一個(gè)A行B列矩陣,每一個(gè)矩陣元素的值是有一定的運(yùn)算規(guī)則

舉例
A 3行4列 B 4行9列,A * B = 得出一個(gè)3行9列的矩陣
3行3列方陣3行3列方陣=得出相同3行3列方陣
3行8列
8行8列=3行8列
8行8列 *8行3列=8行3列

結(jié)論:
矩陣相乘的幾何意義就是記錄變化

矩陣乘法注意事項(xiàng)

1.任意矩陣M乘以方陣S,不管從哪邊乘,都得到與原矩陣大小相同的矩陣,當(dāng)然,前提是假定乘法有意義,當(dāng)然,每個(gè)元素的值是按照一定規(guī)則計(jì)算的,如果S是單元矩陣,結(jié)果就是原矩陣M,每個(gè)元素的值保持不變
2.矩陣乘法不滿足較好綠 AB=!BA
3.矩陣乘法滿足結(jié)合律 即(AB)C=A(BC),假定ABC的維度使得其乘法有意義,要注意如果(AB)C有意義,那么A(BC)就一定有意義
4.矩陣乘法也滿?與標(biāo)量或向量的結(jié)合律,即:(kA)B = k(AB) = A(kB); (vA)B = v(AB);
5.矩陣積的轉(zhuǎn)置相當(dāng)于先轉(zhuǎn)置矩陣然后以相反的順序乘法,即:(AB)T = BT AT T是上標(biāo)

向量與矩陣的乘法詳解

?向量左乘矩陣時(shí),結(jié)果是?向量;
列向量右乘矩陣時(shí),結(jié)果是列向量;
?行向量右乘矩陣時(shí),結(jié)果是?意義;
列向量左乘矩陣時(shí),結(jié)果是?意義;
矩陣與向量相乘 注意事項(xiàng):
1.結(jié)果向量中的每個(gè)元素都是原向量與矩陣中單獨(dú)?或列的點(diǎn)積;
2.矩陣?向量乘法滿?對(duì)向量加法的分配律,對(duì)于向量v,w 和 矩陣M 有,
(v + w)M = vM + wM;

11.行向量與列向量的使用場(chǎng)景

為什么要使??向量?(偏向于書寫方便)

1.在?字中使??向量的形式更加好書寫;
2.用矩陣乘法實(shí)現(xiàn)坐標(biāo)系轉(zhuǎn)換時(shí),向量左乘矩陣的形式更加方便
3.DirectX使?的是?向量

為什么要使用列向量?

1.等式中使用列向量形式更好
2.線性代數(shù)書中使用列向量
3.多本計(jì)算機(jī)圖形學(xué)都是使用的列向量
4.OpenGL 使?的是列向量

矩陣幾何意義

12.平移、縮放、旋轉(zhuǎn)

1.?陣的?能被解釋為坐標(biāo)系的基向量;
2.為了將向量從原坐標(biāo)系變換到新坐標(biāo)系,用它乘以一個(gè)矩陣。
3.從原坐標(biāo)系到這些基向量定義的新坐標(biāo)系的變化是?種線性變換。線性變換保持直線和平行線。但?度、?度 面積或體積可能會(huì)改變。
4.零向量乘以任何矩陣仍然得到零向量。因此,?陣所代表的線性變換的原點(diǎn)和原坐標(biāo)系原點(diǎn)一致。變換不包含 原點(diǎn)。
5.可以通過(guò)想象變換后的坐標(biāo)系的基向量來(lái)想象矩陣。這些基向量在2D中構(gòu)成L形。在3D構(gòu)成“三角架”型。?? 個(gè)盒?以及輔助更有助于理解

12. 3D旋轉(zhuǎn) 圍繞X軸旋轉(zhuǎn)-沿著x正向順時(shí)針旋轉(zhuǎn)

想讓一個(gè)圖形在3D中圍繞X軸旋轉(zhuǎn)?度,可以將矩陣與下面這個(gè)矩陣相乘
1 0 0
0 cos? sin?
0 -sin? cos?
物體坐標(biāo)系 x正向左,y正向上,z正向里

13. 3D旋轉(zhuǎn) 圍繞Y軸旋轉(zhuǎn)-沿著Y正向順時(shí)針旋轉(zhuǎn)

想讓一個(gè)圖形在3D中圍繞Y軸旋轉(zhuǎn)?度,可以將矩陣與下面這個(gè)矩陣相乘
cos? 0 -sin?
0 1 0
sin? 0 cos?
物體坐標(biāo)系 x正向左,y正向上,z正向里

14. 3D旋轉(zhuǎn) 圍繞Z軸旋轉(zhuǎn)-沿著Z正向順時(shí)針旋轉(zhuǎn)

想讓一個(gè)圖形在3D中圍繞Z軸旋轉(zhuǎn)?度,可以將矩陣與下面這個(gè)矩陣相乘
cos? sin? 0
-sin? cos? 0
0 0 1
物體坐標(biāo)系 x正向左,y正向上,z正向里

15. 3D旋轉(zhuǎn) 圍繞n軸旋轉(zhuǎn)?度

想讓一個(gè)圖形在3D中圍繞n軸旋轉(zhuǎn)?度矩陣變換如下值
nx2(1-cos?)+cos? nxny(1-con?)+nzsin? nxnz(1-cos?)-nySin?
nxny(1-cos?)-nzsin? ny2(1-con?)+cos? nynz(1-cos?)-nxSin?
nxnz(1-cos?)+nycos? nynz(1-con?)+nxsin? nz2(1-cos?)+cos?
其中x,y,z為下標(biāo),2為上標(biāo)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容