目录
一、向量
\[\vec{AB} = B − A \]- 向量AB=点B-点A
- 向量的单位向量(归一化)
- 向量的转置
- X和Y可以是任何(通常是正交单位)向量
向量的加法Vector Addition
向量乘法Vector Multiplication
1.点乘dot product
\[\vec{a}\cdot\vec{b}=||\vec{a}||||\vec{b}||cos\theta \]\[cos\theta=\frac{\vec{a}\cdot\vec{b}}{||\vec{a}||||\vec{b}||} \]\[cos\theta=\hat{a}\cdot\hat{b} \]点乘属性
\[\vec{a} ·~\vec{b} = ~\vec{b} · ~\vec{a} \]\[\vec{a} · (\vec{b} + \vec{~c}) = \vec{~a} ·\vec{~b} + \vec{~a} ·\vec{~c} \]\[(k\vec{~a}) ·\vec{~b} = \vec{~a} · (k\vec{~b}) = k(\vec{~a} ·\vec{~b}) \]笛卡尔座标系下的点乘
-in 2D
\[\vec{a} ·~\vec{b} =\begin{pmatrix} x_a \\ y_a \\ \end{pmatrix}\cdot\begin{pmatrix} x_b \\ y_b \\ \end{pmatrix}=x_ax_b+y_ay_b \]-in 3D
\[\vec{a} ·~\vec{b} ·~\vec{c} =\begin{pmatrix} x_a \\ y_a \\z_a \end{pmatrix}\cdot\begin{pmatrix} x_b \\ y_b \\ z_b\end{pmatrix}=x_ax_b+y_ay_b+z_az_b \]图形学中的点乘
- 获取两个向量的夹角
- 获取一个向量在另一个向量上的投影
![](https://picgo-1312546987.cos.ap-shanghai.myqcloud.com/picGo/20221222152341.png)
图中\(\vec{b_\bot}\)是\(\vec{b}\)在\(\vec{a}\)上的投影
\[\vec{b_\bot}=k\hat{a} \]\[k=||\vec{b_\bot}||=||\vec{b}||cos\theta \]- 判断两个向量的方向接近情况
![](https://picgo-1312546987.cos.ap-shanghai.myqcloud.com/picGo/20221222153509.png)
附上\(cos\theta\)的变化图
- 由上图可知 \(\vec{a}\cdot\vec{b}\)的值是根据\(cos\theta\)的正负相关的,在第一和第四象限是正值,第二第三象限是负值。
- 所以两个向量点乘结果为负,说明两个向量的夹角>90(用来判断目标在角色身前还是身后)
2.叉乘Cross product
![](https://picgo-1312546987.cos.ap-shanghai.myqcloud.com/picGo/20221223003030.png)
- 叉乘结果向量c与两个初始向量a,b正交
- c的方向定义为垂直于a和b所构成的平面,并且a,b和c构成右手螺旋定则,也就是右手四指方向从a转向b,大拇指即得到c方向
- 常用于生成座标系
- c的模即以a和b为两条边的平行四边形的面积
叉乘属性
![](https://picgo-1312546987.cos.ap-shanghai.myqcloud.com/picGo/20221223003230.png)
笛卡尔座标系下的叉乘
\[\vec{a}\times\vec{b}=\begin{pmatrix} y_az_b-y_bz_a \\ z_ax_b-x_az_b \\x_ay_b-y_ax_b \end{pmatrix} \]图形学中的叉乘
- 用来判断左右
- 用来判断点在三角形的内侧/外侧
![](https://picgo-1312546987.cos.ap-shanghai.myqcloud.com/picGo/20221223005948.png)
- 假如点P在三角形的内部需要满足\(\vec{AB}\times\vec{AP}>0\)、\(\vec{BC}\times\vec{BP}>0\)、\(\vec{CA}\times\vec{CP}>0\)
- 如果点p在某一条边上,那么该边上的叉乘结果就会是0(两个共线向量的叉乘结果为0)
- 如果有任何一个结果为负,那么p在三角形外
二、矩阵
矩阵乘法
- 矩阵A乘以矩阵B,需要满足条件矩阵A的列数=矩阵B的行数(M x N) (N x P) = (M x P)
- 将向量视为列矩阵
例题
![](https://picgo-1312546987.cos.ap-shanghai.myqcloud.com/picGo/20221223021434.png)
第一个?=1x6+3x7=27,第二个?=0x4+4x3=12
矩阵乘法属性
- 不满足交互律,即\(AB\neq BA\)(B的列数不一定等于A的行数)
- 满足分配律和结合律
- \((AB)C=A(BC)\)
- \(A(B+C)=AB+AC\)
- \((A+B)C=AB+AC\)
矩阵转置
\(\begin{pmatrix}1&2 \\ 3&4 \\5&6 \end{pmatrix}^\top=\begin{pmatrix}1&3&5 \\ 2&4&6 \end{pmatrix}\)
- 属性
- 单位矩阵
- A矩阵乘以A的逆矩阵,如果结果为单位矩阵,则称两者互逆。
- AB乘积的逆,跟转置类似
向量的点乘叉乘用矩阵来表示
- 点乘
- 叉乘