文章目錄
- 前言
- 一、向量Vectors
-
-
- 向量
- 模長Magnitude
- 機關向量Unit Vector
- 向量求和
- 笛卡爾坐标系(Cartesian Coordinates)
- 點乘(Dot product)
- 叉乘(Cross product)
-
- 二、矩陣Matrices
-
-
- 矩陣
- 矩陣乘矩陣
- 矩陣與向量
- 矩陣的轉置(Transpose)
- 機關矩陣(Identity Matrix)
- 逆矩陣(Inverses Matrix)
- 向量乘法的矩陣形式
-
前言
今天開始看Games101的計算機圖形學課程,首先來複習一下線性代數
課程位址:GAMES101-現代計算機圖形學入門-闫令琪
一、向量Vectors
向量

向量是從A指向B的一個箭頭,具有方向和長度。向量不關心自己的絕對位置。
模長Magnitude
向量的長度
機關向量Unit Vector
長度為1的向量,我們不關心他的長度隻關心他的方向。
向量求和
幾何上的的加法是将向量首尾相連,代數上将兩個向量的坐标相加
笛卡爾坐标系(Cartesian Coordinates)
在計算機圖形學中,向量預設按照列的寫法來書寫,A(T)為轉制
點乘(Dot product)
點乘可以友善的得到兩個向量的夾角(餘弦),特别是在兩個方向都是機關向量時。還可以用于計算一個向量在另一個向量身上的投影。
點乘的交換律,結合律和配置設定律
在笛卡爾坐标系中點乘的算法
投影算法,投影長度為b向量在a向量上的投影的長度,方向為a向量的方向。
投影可以将一個向量分解為一個投影向量和一個垂直于投影向量的向量
可以通過點乘結果的正負來判斷兩個向量的方向性,當兩個向量方向完全一緻時,點乘結果為1(機關向量),反之為-1。
叉乘(Cross product)
叉乘會得到一個新的向量,這個向量與原本的兩個向量垂直。通過右手定則來确定具體方向(右手四指從a到b,大拇指方向就是叉乘結果向量的方向,ab與ba的方向正好相反,當然,也有些情況下是用左手定則)。叉乘在建立直角坐标系時會很有用,也可以用于判斷左和右(内與外)。
知道右手法則就行
向量的叉乘公式(笛卡爾坐标系),可以用矩陣表示。
使用叉乘判斷左和右,ab時,得到的結果向量的z軸為正,是以判斷b在a的左側,當ba時,得到的向量的z軸為負,是以判斷a在b的右側。
使用叉乘來判斷内外,用AB叉乘AP,得到AP在AB的左側,也就是P點在AB的左側,BC叉乘BP得到P點在BC的左側,CA叉乘CP得到P點在CA的左側,也就是說P在三角形ABC的内部,因為P點一直在三條邊的同一側。
通過點乘能夠建立三維直角坐标系,可以将任意向量分解到三個坐标系向量(機關向量)的投影上。也就是向量p等于在三個坐标系向量上計算對應的的投影長度分别乘上對應的那個坐标系向量本身,再相加三個向量。
二、矩陣Matrices
矩陣
矩陣就是二維數組(多元),在圖形學中用于表示向量的變換。m x n的意思是,m行 n列。
矩陣乘矩陣
矩陣乘矩陣,首先得是能乘的矩陣,也就是第一個矩陣的列數必須等于第二個矩陣的行數。最後得到的是一個第一個矩陣的行數 第二個的列數的矩陣。(M x N)(N x P)=(M x P)
結果矩陣的元素(i , j)的值為第一個矩陣A的第i行和第二個矩陣B第j列點乘的結果。比如上圖中第2行4列的元素26為(5 , 2)點乘(4 ,3)的結果54+23.
一般來說矩陣相乘AB和BA是不同的,也就是說矩陣沒有交換律,但是矩陣滿足結合律和配置設定律。
矩陣與向量
我們将向量看作是一個一列的矩陣(一個m x 1的矩陣),就可以将矩陣和向量看成一回事來進行矩陣相乘,矩陣相乘可以用于向量的變換。上圖将一個二維向量進行按y軸鏡像變換處理 (預覽)。
矩陣的轉置(Transpose)
将行和列互換。i行j列變成了j行i列,第j列變成了第j行。
如果兩個矩陣相乘再做轉置,相當于兩個矩陣的轉置相乘。
機關矩陣(Identity Matrix)
對角線上全是1的矩陣(圖例3乘3矩陣)
逆矩陣(Inverses Matrix)
某個矩陣和他的逆矩陣相乘的結果為一個機關矩陣。
向量乘法的矩陣形式
向量的點乘可以轉化為a向量的矩陣轉置乘以b向量矩陣。
向量的叉乘也可以轉化為矩陣相乘(有點搞不懂dual matrix是個啥)。