目录
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、向量的加法
上图演示了
v
1
⃗
与
v
2
⃗
\vec{v_1} 与\vec{v_2}
v1与v2的加法运算:
v
3
⃗
=
v
2
⃗
+
v
1
⃗
\vec{v_3} = \vec{v_2} + \vec{v_1}
v3=v2+v1
即
v
3
⃗
.
x
=
v
2
⃗
.
x
+
v
1
⃗
.
x
\vec{v_3}.x = \vec{v_2}.x+ \vec{{v_1}}.x
v3.x=v2.x+v1.x
v
3
⃗
.
y
=
v
2
⃗
.
y
+
v
1
⃗
.
y
\vec{v_3}.y = \vec{v_2}.y+ \vec{v_1}.y
v3.y=v2.y+v1.y
向量满足加法的交换律:
a
⃗
+
b
⃗
=
b
⃗
+
a
⃗
\vec{a} + \vec{b} = \vec{b} + \vec{a}
a+b=b+a
2.2.2、向量的减法
上图演示了
v
1
⃗
与
v
2
⃗
\vec{v_1} 与\vec{v_2}
v1与v2的减法运算:
v
3
⃗
=
v
2
⃗
−
v
1
⃗
\vec{v_3} = \vec{v_2} - \vec{v_1}
v3=v2−v1
即
v
3
⃗
.
x
=
v
2
⃗
.
x
−
v
1
⃗
.
x
\vec{v_3}.x = \vec{v_2}.x- \vec{v_1}.x
v3.x=v2.x−v1.x
v
3
⃗
.
y
=
v
2
⃗
.
y
−
v
1
⃗
.
y
\vec{v_3}.y= \vec{v_2}.y-\vec{v_1}.y
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的单位向量就是: 1 2 + 2 2 + 2 2 2 = 9 = 3 \quad \sqrt[2]{1^2 + 2^2 + 2^2} = \quad \sqrt[]{9} = 3 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、向量的点积的几何意义
点积的几何意义:
D o t ( V 1 ⃗ , V 2 ⃗ ) = ∣ ∣ V 1 ⃗ ∣ ∣ ⋅ ∣ ∣ V 2 ⃗ ∣ ∣ ⋅ c o s ( θ ) Dot(\vec{V_1},\vec{V_2}) = ||\vec{V_1}|| \cdot ||\vec{V_2}|| \cdot cos(\theta) Dot(V1,V2)=∣∣V1∣∣⋅∣∣V2∣∣⋅cos(θ)
c o s ( θ ) = D o t ( V 1 ⃗ , V 2 ⃗ ) ∣ ∣ V 1 ⃗ ∣ ∣ ⋅ ∣ ∣ V 2 ⃗ ∣ ∣ cos(\theta) = \frac{Dot(\vec{V_1},\vec{V_2})}{||\vec{V_1}|| \cdot ||\vec{V_2}||} cos(θ)=∣∣V1∣∣⋅∣∣V2∣∣Dot(V1,V2)
特别的:
当 V 1 ⃗ , V 2 ⃗ \vec{V_1},\vec{V_2} V1,V2都是单位向量时
c o s ( θ ) = D o t ( V 1 ⃗ , V 2 ⃗ ) ∣ ∣ V 1 ⃗ ∣ ∣ ⋅ ∣ ∣ V 2 ⃗ ∣ ∣ cos(\theta) = \frac{Dot(\vec{V_1},\vec{V_2})}{||\vec{V_1}|| \cdot ||\vec{V_2}||} cos(θ)=∣∣V1∣∣⋅∣∣V2∣∣Dot(V1,V2)
θ = a c o s ( V 1 ⃗ , V 2 ⃗ ) ) = a c o s ( 0.5 ) = 6 0 ∘ \theta = acos(\vec{V_1},\vec{V_2}))=acos(0.5) = 60^\circ θ=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时,两个向量的夹角小于 9 0 ∘ 90^\circ 90∘
- 当两个向量相乘小于0时,两个向量的夹角大于 9 0 ∘ 90^\circ 90∘小于 18 0 ∘ 180^\circ 180∘
- 当两个向量相乘等于0时,两个向量的夹角等于 9 0 ∘ 90^\circ 90∘
- a ⃗ ⋅ b ⃗ = b ⃗ ⋅ a ⃗ = ∣ ∣ a ⃗ ∣ ∣ ⋅ ∣ ∣ b ⃗ ∣ ∣ ⋅ c o s ( θ ) \vec{a}\cdot\vec{b} = \vec{b}\cdot\vec{a}=||\vec{a}|| \cdot ||\vec{b}|| \cdot cos(\theta) a⋅b=b⋅a=∣∣a∣∣⋅∣∣b∣∣⋅cos(θ)
2.2.6、向量的叉积
2.2.6.1、向量的叉积计算
有两个向量:
V
1
⃗
=
(
1
,
0
,
0
)
\vec{V_1} = (1,0,0)
V1=(1,0,0);
V
2
⃗
=
(
0
,
1
,
0
)
\vec{V_2} = (0,1,0)
V2=(0,1,0);
叉积公式:
C
r
o
s
s
(
V
1
⃗
,
V
2
⃗
)
=
∣
x
1
y
1
z
1
∣
×
∣
x
2
y
2
z
2
∣
=
∣
y
1
×
z
2
−
z
1
×
y
2
z
1
×
x
2
−
z
2
×
x
1
x
1
×
y
2
−
y
1
×
x
2
∣
Cross(\vec{V_1},\vec{V_2})= \begin {vmatrix}x_1 \\ y_1 \\ z_1 \\\end{vmatrix} \times\begin {vmatrix}x_2 \\ y_2 \\ z_2 \\\end{vmatrix} =\begin {vmatrix}y_1 \times z_2 - z_1 \times y_2 \\ z_1 \times x_2 - z_2 \times x_1 \\x_1 \times y_2 - y_1 \times x_2 \\\end{vmatrix}
Cross(V1,V2)=∣∣∣∣∣∣x1y1z1∣∣∣∣∣∣×∣∣∣∣∣∣x2y2z2∣∣∣∣∣∣=∣∣∣∣∣∣y1×z2−z1×y2z1×x2−z2×x1x1×y2−y1×x2∣∣∣∣∣∣
2.2.6.2、向量的叉积的几何意义
eg:
∣
1
0
0
∣
×
∣
0
1
0
∣
=
∣
0
×
0
−
0
×
1
0
×
0
−
1
×
0
1
×
0
−
0
×
0
∣
=
∣
0
0
1
∣
\begin {vmatrix}1 \\ 0 \\ 0 \\\end{vmatrix} \times\begin {vmatrix}0 \\ 1 \\ 0 \\\end{vmatrix} =\begin {vmatrix}0 \times 0 - 0 \times1 \\ 0 \times 0 - 1 \times 0 \\1\times 0 - 0 \times 0 \\\end{vmatrix}= \begin {vmatrix}0 \\ 0 \\ 1 \\\end{vmatrix}
∣∣∣∣∣∣100∣∣∣∣∣∣×∣∣∣∣∣∣010∣∣∣∣∣∣=∣∣∣∣∣∣0×0−0×10×0−1×01×0−0×0∣∣∣∣∣∣=∣∣∣∣∣∣001∣∣∣∣∣∣
由上图中的
U
⃗
×
V
⃗
=
N
⃗
\vec{U}\times\vec{V}= \vec{N}
U×V=N我们可以看到
N
⃗
\vec{N}
N与
U
⃗
\vec{U}
U和
V
⃗
\vec{V}
V都垂直。
两个向量的叉积可以得到一个同时垂直于这两个向量的新向量,这个新向量垂直于这两个向量所在的平面,这个向量就是这个平面的法向量!
两个向量的叉积不满足交换律:
U
⃗
×
V
⃗
=
−
V
⃗
×
U
⃗
\vec{U}\times\vec{V}=-\vec{V}\times\vec{U}
U×V=−V×U
3、结束语
The End
好了,今天的分享就到这里,如有不足之处,还望大家及时指正,随时欢迎探讨交流!!!
喜欢的朋友们,请帮顶、点赞、评论!您的肯定是我写作的不竭动力!