1、引言
這一篇主要複習中學知識向量的相關知識,涉及知識點如下:
2、向量
2.1、向量
向量:既有大小又有方向的量稱爲向量。向量是和標量作對比的,標量只有大小沒有方向。向量的大小指的是向量的長度。向量是沒有位置的概念,只有大小各方向。在unity中有以下幾種向量:
- 2D 向量:(x,y) -> (1,0) (0,1) (-0.5,0)
- 3D 向量:(x,y,z) -> (1,0,0) (0,1,0) (-0.5,0,0)
- 4D 向量:(x,y,z,z) -> (1,0,0,1) (0,1,0,1) (-0.5,0,0,1)
這裏的4D向量主要是用來運算矩陣的,這裏在遊戲引擎中我們可以把4D向量叫做齊次向量。
2.2、向量的運算
2.2.1、向量的加法
上圖演示了v1與v2的加法運算:
v3=v2+v1
即v3.x=v2.x+v1.x
v3.y=v2.y+v1.y
向量滿足加法的交換律:
a+b=b+a
2.2.2、向量的減法
上圖演示了v1與v2的減法運算:
v3=v2−v1
即v3.x=v2.x−v1.x
v3.y=v2.y−v1.y
2.2.3、向量與標量的乘法
eg: V = (1,2,2)
D = 2
R = v * D = 2 * (1,2,2) = (2,4,4)
2.2.4、向量的單位化
向量的單位化是指向量的每一個分量除以這個向量的長度得到的向量。單位向量的特點是長度爲1,方向是單位向量的方向。
向量的長度由該向量所有座標的平方和開平方根而計算得出。
向量 R = {1,2,2}
R的單位向量就是:212+22+22=9=3
2.2.5、向量的點積
2.2.5.1、向量的點積運算
向量的點積描述的是向量與向量的乘積,eg:
v1 = (1,0)
v2 = (0.5,0.866)
Dot(V1,V2) = v1 * V2
= (1,0) * (0.5,0.866)
= 1 * 0.5 + 0 * 0.866
= 0.5
需要注意的是:
點積的結果是一個標量值
2.2.5.2、向量的點積的幾何意義
點積的幾何意義:
Dot(V1,V2)=∣∣V1∣∣⋅∣∣V2∣∣⋅cos(θ)
cos(θ)=∣∣V1∣∣⋅∣∣V2∣∣Dot(V1,V2)
特別的:
當 V1,V2都是單位向量時
cos(θ)=∣∣V1∣∣⋅∣∣V2∣∣Dot(V1,V2)
θ=acos(V1,V2))=acos(0.5)=60∘
常用三角函數值
| $$\sin(\theta)$$ | $$\cos(\theta)$$ |
$$0^\circ$$ | 0 | 1 |
$$30^\circ$$ | $$\frac{1}{2}$$ | $$\frac{\sqrt[]{3}}{2}$$ |
$$45^\circ$$ | $$\frac{\sqrt[]{2}}{2}$$ | $$\frac{\sqrt[]{2}}{2}$$ |
$$60^\circ$$ | $$\frac{\sqrt[]{3}}{2}$$ | $$\frac{1}{2}$$ |
$$90^\circ$$ | 1 | 0 |
$$120^\circ$$ | $$\frac{\sqrt[]{3}}{2}$$ | $$-\frac{1}{2}$$ |
$$180^\circ$$ | 0 | -1 |
- 當兩個向量相乘大於0時,兩個向量的夾角小於90∘
- 當兩個向量相乘小於0時,兩個向量的夾角大於90∘小於180∘
- 當兩個向量相乘等於0時,兩個向量的夾角等於90∘
- a⋅b=b⋅a=∣∣a∣∣⋅∣∣b∣∣⋅cos(θ)
2.2.6、向量的叉積
2.2.6.1、向量的叉積計算
有兩個向量:
V1=(1,0,0);
V2=(0,1,0);
叉積公式:
Cross(V1,V2)=∣∣∣∣∣∣x1y1z1∣∣∣∣∣∣×∣∣∣∣∣∣x2y2z2∣∣∣∣∣∣=∣∣∣∣∣∣y1×z2−z1×y2z1×x2−z2×x1x1×y2−y1×x2∣∣∣∣∣∣
2.2.6.2、向量的叉積的幾何意義
eg:
∣∣∣∣∣∣100∣∣∣∣∣∣×∣∣∣∣∣∣010∣∣∣∣∣∣=∣∣∣∣∣∣0×0−0×10×0−1×01×0−0×0∣∣∣∣∣∣=∣∣∣∣∣∣001∣∣∣∣∣∣
由上圖中的U×V=N我們可以看到N與U和V都垂直。
兩個向量的叉積可以得到一個同時垂直於這兩個向量的新向量,這個新向量垂直於這兩個向量所在的平面,這個向量就是這個平面的法向量!
兩個向量的叉積不滿足交換律:
U×V=−V×U
3、結束語
The End
好了,今天的分享就到這裏,如有不足之處,還望大家及時指正,隨時歡迎探討交流!!!
喜歡的朋友們,請幫頂、點贊、評論!您的肯定是我寫作的不竭動力!