向量運算與應用
什麼是向量
向量指具有大小和方向的量
,一般記做:
a
,
,
,同時也可以用數對的形式表示,例如:(x, y) ,(7,8,9)
向量的矩陣
表示:
向量的大小
,也就是向量的長度(一般稱作為 模),向量a的模記為:
,若
,則
單位向量:
即模為1的向量,可以記作
。一個向量的單位向量,可以透過除以它模得到,即
。
零向量:
即模為0的向量,零向量的方向是任意的
相反向量:
長度相等方向相反的向量,
的相反向量為
平行(共線)向量:
方向相同或相反的非零向量,記作
向量運算
設
,
加法
向量的加法滿足平行四邊形法則和三角形法則,
可以將其想象成一個長方形求對角線。
運算過程:
一些運算律:
交換律:
結合律:
減法
,如圖
運算過程:
一些運算律:
實數和向量的積
設有實數 k,和向量
的乘積還是一個向量,記做
,且
,如果
,則 k = 0 或
其幾何意義為:向量的有向線段的伸長或者壓縮。
一些運算律
:
結合律:
分配律:
向量的點乘(點積,內積,數量積)(Dot Product)
兩個向量的數量積(點積,內積,點乘)是一個數量,沒有方向,記作
代數定義:
幾何定義:
我們將
和
的夾角記作
,且
若
,
不共線,則
若
,
共線,則
,因為此時
則
,若兩個向量方向相反,則認為
則
。
一些運算律:
交換律:
結合律:
分配率:
一些性質:
若兩個向量互相垂直,則
因此
點乘的實際使用場景
1。計算兩個向量的夾角,透過點乘我們可以得到:
若
和
為單位向量,即模為1,那麼上面的式子分母即為1,得
2。可以用來求一個向量在另一個向量上的
投影
,例如圖中
在
上的投影,我們記作
因為
是
在
上的投影,因此
的方向和
相同。因此
,k為一個常量,
為
的單位向量。
的值我們很好求得:
接下來要看看 k 值的含義,因為
和
方向相同, 因此
不僅是
的單位向量,同時也是
的單位向量,因此 k 即為
的模,即
然後由於
的結尾與
的結尾的連線,垂直於
(如圖,也是投影的性質),因此透過三角函式,我們可以得知
的值很好求得,
我們可以透過點乘得到,因此即可求得k的值,然後求得
如圖,透過向量的減法,我們可以得到
,這樣就把
分解成了兩個互相垂直的向量。
若我們要把向量 (x, y, z) 投影到x,y,z的某個平面上,只需要把垂直於該平面的那個軸對應的值設定為0即可,例如:投影到xy平面,即為 (x, y, 0) ,投影到yz平面上,即為 (0, y, z)。若投影到某個軸上,則只保留該軸的值即可,例如:投影到x軸上,即為 (x, 0, 0),投影到y軸上,即為 (0, y, 0)。
3。判斷一個向量的朝向是否和另個向量相似,即兩個向量的
方向性
,如圖
圖中我們可以認為,
和
一樣,同時朝向前方,而
朝向的是
的後方。我們可以透過點積的值來判斷,
> 0 則為同方向(0 <= 夾角 < 90), < 0 則為反方向(90 < 夾角 <= 180), = 0 即為垂直(夾角 = 90)
。
因為
,若兩個都是非零向量,則
,透過三角函式可知:當
,
,因此點積的值 > 0,當
,
,因此點積的值 = 0,當
,
,因此點積的值 < 0。
4。兩個向量是否
接近
,夾角越小,即兩個向量越接近。透過上面3提到的,我們只能透過點積的值來判斷夾角是鈍角還是銳角還是直角,那麼如何只透過點積的值來判斷夾角大小呢?那就是我們把
兩個向量的單位向量進行點積
。這樣就會使
,因此
,那麼當值為 1 時,代表兩向量方向正好相同,當值越來越小時,代表兩個向量離得越來越遠,當值為 -1 時,代表兩向量方向正好相反。因此
兩個向量的單位向量的點積越接近1,兩個向量越接近
。
這個性質可以應用在
高光
的顯示上,當
人眼看向目標的向量
和
光折射的向量
,它們越接近則高光效果越明顯。
向量的叉乘(叉積,向量積,外積)(Cross Product)
兩個向量的向量積(叉積,叉乘,外積)是一個向量,記作
(或者
)
我們將
和
的夾角記作
,且
,那麼叉乘得到的向量的模長為:
方向:
與這兩個向量所在平面垂直,且遵守
右手螺旋定則
(四指方向代表旋轉的方向,右手四指從
轉向
時,大拇指的方向即向量積的方向)
用矩陣表示:
若為二維向量,即z的值為0,因此
,又因為二維沒有z軸,所以常寫作
,該常量其實就是
。
一些運算律:
一些性質:
(因為 sin0 = 0)
若兩個向量互相平行,則
的值是以
和
為邊的平行四邊形的面積,同樣的以
和
為邊的三角形的面積自然就是
(至於為什麼,下面第四點解釋)
叉乘實際使用場景
1。建立三維座標中的座標系,例如給定一個x軸和y軸,我們可以透過x軸叉積y軸來獲得z軸
注:若三維座標系的
那麼該座標系即為
右手座標系
。
2。判斷一個向量在另一個向量的左側還是右側。例如我們給定兩個向量
,
,我們想知道
在
的左側還是右側,該如何判定?
根據
和
的值,我們可以看出它倆都在 xy 平面上,根據叉積的性質我們可以知道
得到的向量一定垂直於 xy 平面(和z軸平行或重疊),然後根據右手螺旋法則,若
的向量的z的值 > 0 ,那麼即表示
在
的右側,若z的值 < 0 ,那麼即表示
在
的左側。
上面的例子我們是從z軸的正方向看向負方向,但是若從負方向看向正方向,那麼原本在左邊就會變成在右邊,因此左右關係和我們的觀察方向有關。
因此若我們從z軸正方向看向負方向,若兩個向量組成的平面沒有平行於xy平面,我們可以先將其投影到xy平面上,然後再計算左右。
3。判斷點是否在三角形內部。
其實本質上還是2中的思路,例如上圖,我們可以利用
,
,
來判斷P點是否在
,
,
的左側,若成立,則P點在三角形ABC的內部。
同理可以應用到四邊形等多邊形中,但是必須夾角小於180度(如下圖,ABC>180,因此P點即使在內部,但是卻在
的右側,
的左側)。
這點是
三角形光柵化
的基礎,要判斷三角形覆蓋了哪些畫素,那就需要知道這些畫素是否在三角形內部,好給這個畫素進行著色。
4。求三角形面積
如下圖三角形,CD長度為 h,AC長度為 b,AB長度為 c,AC和AB的夾角為 α 。
我們知道其面積為:
因為
因此
而
正是我們向量AC和向量AB叉乘結果的模
因此