一 笛卡爾座標系
三維笛卡兒座標系中,我們需要定義3個座標軸和一個原點,
這3個座標軸也被稱爲是該座標系的基矢量( basis vector)。
通常情況下,這3個座標軸之間是互相垂直的,且長度爲1,這樣的基矢量被稱爲標準正交基( orthonormal basis)。
笛卡爾座標系分爲:左手座標系和右手座標系
如圖:
左右手座標系之間是可以進行互相轉換的。最簡單的方法就是把其中一個軸反轉,並保持其他兩個軸不變。
Unity使用的是左手座標系
二 矢量:
矢量不能和標量做加減運行,可以做乘除運算。
公式非常簡單,我們只需要把每個分量做對應的運算即可:
乘法:
除法:
矢量的加法和減法:
我們可以對兩個失量進行相加或相減,其結果是一個相同維度的新矢量
我們只需要把兩個矢量的對應分量進行相加或相減即可。公式如下:
矢量的模:
單位矢量:
單位矢量指的是那些模爲1的矢量。單位矢量也被稱爲被歸一化的矢量( normalized vector)。
對任何給定的非零矢量,把它轉換成單位矢量的過程就被稱爲歸一化( normalization)。
爲了對矢量進行歸一化,我們可以用矢量的模除以該矢量來得到。
公式如下:
零矢量(即矢量的每個分量值都爲0,如v=(0,0,0) 是不可以被歸一化的。這是因爲做除法運算時分母不能爲0。
矢量的點積
矢量的乘法有兩種最常用的種類:點積( dot product.,也被稱爲內積, inner product)和又積( cross product,也被稱爲外積, outer product)。
點積公式一:
矢量的點積滿足交換律,即:
點積性質:
一:點積可結合標量乘法:
二:點積可結合矢量加減法:
三:一個矢量和本身點積的結果是該矢量的模的平方:
可以利用該性質求矢量的模
點積公式二:
矢量的叉積
另一個重要的矢量運算就是又積( cross product),也被稱爲外積( outer product)。
與點積不同的是,矢量叉積的結果仍是一個矢量,而非標量和點積類似,又積的名稱來源於它的符號:a×b。同樣,這個又號也是不可省略的。
那麼,又積到底有什麼用呢?
最常見的一個應用就是計算垂直於一個平面、三角形的矢量。
另外,還可以用於判斷三角面片的朝向
公式如下:
公式一:
叉積不滿足交換律和結合律,即:
公式二:
三 矩陣:
不幸的是,沒有人能告訴你母體( matrix)究竟是什麼。你需要自己去發現它。
一一電影《黑客帝國》(英文名: The Matrix
定義:
它是由m×n個標量組成的長方形數組。
如下就是一個 2X2
的矩陣:
我們可以用矩陣來表示矢量。
矢量可以看成是n x 1
的列矩陣( columnmatrix)
或1Xn
的行矩陣( row matrix)
,其中n對應了矢量的維度。
行矩陣:
列矩陣:
矩陣運算:
1.矩陣和標量的乘法
矩陣也可以和標量相乘,它的結果仍然是一個相同維度的矩陣。
以3×3的矩陣爲例,其公式如下:
2.矩陣和矩陣的乘法
一個r×n
的矩陣A
和一個n×c
的矩陣B
相乘,它們的結果AB
將會是一個rXc
大小的矩陣。
第一個矩陣的列數必須和第二個矩陣的行數相同,它們相乘得到的矩陣的行數是第一個矩陣的行數,而列數是第二個矩陣的列數。
例如,如果矩陣A的維度是4×3 矩陣B的維度是3×6,那麼AB的維度就是4×6。
性質:
一:矩陣乘法不滿足交換律。
二:矩陣乘法滿足結合律。
特殊矩陣
1.方塊矩陣
方塊矩陣( square matrix),簡稱方陣,是指那些行和列數目相等的矩陣。在三維渲染裏,最常使用的就是3×3和4×4的方陣。
對角元素( diagonal elements)。方陣的對角元素指的是行號和列號相等的元素。
如果一個矩陣除了對角元素外的所有元素都爲0,那麼這個矩陣就叫做對角矩陣( diagonalmatrix)。
例如,下面就是一個4×4的對角矩陣
2.單位矩陣
一個特殊的對角矩陣是單位矩陣( identity matrix),用 來表示。
一個3x3的單位矩陣如下:
任何矩陣和它相乘都等於它自身,
3.轉置矩陣
**轉置矩陣( transposed matrix)**實際是對原矩陣的一種運算,即轉置運算。只需要把原矩陣翻轉一下即可。表示。
如:
性質:
- 矩陣轉置的轉置等於原矩陣:
- 矩陣串接的轉置,等於反向串接各個矩陣的轉置。
4.逆矩陣
不是所有的矩陣都有逆矩陣,第一個前提就是,該矩陣必須是一個方陣。
給定一個方陣,它的逆矩陣用來表示。
逆矩陣最重要的性質就是,如果我們把和相乘,那麼它們的結果將會是一個單位矩陣,即:
如果一個矩陣的行列式不爲0,那麼它就是可逆的
性質:
- 逆矩陣的逆矩陣是原矩陣本身
- 單位矩陣的逆矩陣是它本身。
- 轉置矩陣的逆矩陣是逆矩陣的轉置。
- 矩陣串接相乘後的逆矩陣等於反向串接各個矩陣的逆矩陣。
5.正交矩陣
另一個特殊的方陣是正交矩陣( orthogonal matrix)。正交是矩陣的一種屬性。
如果一個方陣M和它的轉置矩陣的乘積是單位矩陣的話,我們就說這個矩陣是正交的( orthogonal)。反過來也是成立的。
一個重要的性質,即如果一個矩陣是正交的,那麼它的轉置矩陣和逆矩陣是一樣的。
在三維變換中我們經常會需要使用逆矩陣來求解反向的變換。
四 矩陣的幾何意義(變換):
變換( transform) 指的是我們把一些數據,如點、方向矢量甚至是顏色等,通過某種方式進行轉換的過程。
1.線性變換( linear transform )
線性變換 指的是那些可以保留矢量加和標量乘的變換,公式:
線性變換包括:旋轉,縮放 ,錯切,鏡像,正交投影
注意:平移不是線性變換
2.仿射変換( affine transform)
仿射変換 就是合併線性變換和平移變換的變換類型。
仿射變換可以使用一個4x4的矩陣來表示,爲此,我們需要把矢量擴展到四維空間下,這就是齊次座標空間( homogeneous space.)
3.齊次座標(homogeneous coordinate)
由於3x3矩陣不能表示平移,所以爲了計算方便,就把其擴展到4x4矩陣,並且還有把原來的三維矢量轉換成四維矢量,也就是齊次座標
分解基礎變換矩陣:
我們把表示純平移,旋轉,縮放的變換矩陣叫做基礎變換矩陣 ,可以分解爲:
其中,左上角的矩陣用於表示旋轉和縮放,用於表示平移,是零矩陣。
4.平移矩陣
把點在空間平移了個單位
5.縮放矩陣
把點 在空間縮放 倍。
如果縮放係數 我們稱這樣的縮放爲 統一縮放,否則爲非統一縮放
6.旋轉矩陣
繞 X 軸旋轉 度:
繞 Y 軸旋轉 度:
繞 Z 軸旋轉 度: