概念:
計算機圖形:
1.光柵化 Rasterization
2.曲線和曲面 Curves and Meshes
3.光線追蹤 Ray Tracing
4.動畫/模擬 Animation / Simulation
圖形學需要的線性代數并不多,主要是向量和矩陣的一些知識
(先圖后文)
一:向量
長度和方向
1.向量的長度
2.單位向量的表示
向量加法的平行四邊形法則(平移)和三角形法則(首尾相連)
向量在坐標系中的表示:
1.(4,3)就表示多少個x和多少個y
2.第一個是列向量表示,第二個是行向量表示,第三個是長度表示
向量點乘:
1.輸入向量,輸出數值
2.向量相乘等于長度相乘再乘夾角余弦
3.得出夾角等于ab相乘出去長度乘積,也就是單位向量相乘
4.交換律結合律分配律
5.由于cos90=0,因此垂直的向量點乘為0
點乘在坐標系的運算
求b在a上的投影:
1.方向肯定是和a一樣的,所以等于k倍的a的單位向量,k是長度,也就是b的長度乘夾角余弦,夾角余弦等于a單位向量乘b單位向量,
2.于是可以把一個向量分解成兩個向量
點乘的一個用法:
1.a向量的方向為標準,以上半區(qū)為前,下半區(qū)為后,一個向量與a的點乘如果是正數,則方向為前,如果是負數,則方向為后
2.一個向量與a的點乘,越接近1,則接近a,0為垂直,-1為最遠
向量的x乘與點乘完全不同:
1.結果是一個新的向量,這個向量同時垂直于原來的兩個向量
2.長度是長度相乘和夾角sin值的乘積
3.新的向量的方向可以由右手定則確定,舉例:圖中a x b,四指的方向擺成與以a的方向為準,從a的頂端到b的頂端的方向相同,大拇指即是是新向量c的方向,也就是向上的,
4.因此,如果是b x a,那么c應該是向下的.和點乘不同,不滿足交換律
5.a x a = 0,因為sin0 = 0,但是結果仍然是一個向量,也就是零向量,并非數值
1.結果是一個向量
2.上面是二維坐標系,下面是三維坐標系
向量x乘的用法:正左負右,注意左右不一定是視覺上的,參考右邊的例子
1.左邊的圖,假設a和b都是在x,y平面上的,a x b根據右手定則,跟隨x的方向,從x頂點到y頂點,或者說從a頂點到b頂點,得到的新向量是和z一樣的,也就是正的(+Z),則b在a的左邊
2.如果是b x a,得到的向量方向與z相反(-Z),則a在b的右邊
3.右邊的圖,判斷p點是不是在三角形內,首先ab x ap,結果是正的,得到ap在ap的左邊,然后bc x bp,得到bp在bc左邊,最后ca x cp,得到cp在ca左邊,三次都是正的,證明p在三角形內部
4.如果是反過來畫,三次得到的都是負的,也能證明在內部,如果有一個結果不同,則就在外部,根據是哪個結果,能判斷在三角形外部什么方向
把空間一個向量分解為互相垂直的三個方向上
并且uvw是單位向量
結合前面的投影那張圖
1.分解后的向量相加得到原來的向量,因此分解成三個互相垂直的向量p1+p2+p3 = p
二.矩陣
矩陣乘法:必須是一個列數等于另一個的行數才可以相乘
1.舉例:假設是矩陣A*B+P,P中的13,是1行4列,于是去找矩陣A中的1行(1,3),和矩陣B的4列(4,3),計算1x4+3x3 = 13
矩陣乘法不適用交換律.對換位置結果不同
這里是一個根據y軸鏡像的效果
行和列互換,并且A乘B后轉置等于B先轉置再乘上A的轉置
1.I是一個單位矩陣,只在左上角到右下角的對角線上有非零的數,叫做單位矩陣
2.如果一個矩陣A與矩陣B相乘得到一個單位矩陣,那么B就是A的逆矩陣,互逆矩陣也有類似轉置的特性
1.A點乘B,可以表示成A的轉置點乘B,因為向量默認是列向量,所以要把A先轉置才能乘,最后得到一個數值
2.AxB,需要先把A特殊處理,按照圖中進行轉換