目录
一、向量
\[\vec{AB} = B − A
\]
- 向量AB=点B-点A
\[\hat{a}=\frac{\vec{a}}{||\vec{a}||}
\]
- 向量的单位向量(归一化)
\[A=\begin{pmatrix} x \\ y \\ \end{pmatrix}\\A^T=\begin{pmatrix} x , y \\ \end{pmatrix}\\||A||=\sqrt{x^2+y^2}
\]
- 向量的转置
- 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
\]
图形学中的点乘
- 获取两个向量的夹角
- 获取一个向量在另一个向量上的投影
图中\(\vec{b_\bot}\)是\(\vec{b}\)在\(\vec{a}\)上的投影
\[\vec{b_\bot}=k\hat{a}
\]
\[k=||\vec{b_\bot}||=||\vec{b}||cos\theta
\]
- 判断两个向量的方向接近情况
附上\(cos\theta\)的变化图
- 由上图可知 \(\vec{a}\cdot\vec{b}\)的值是根据\(cos\theta\)的正负相关的,在第一和第四象限是正值,第二第三象限是负值。
- 所以两个向量点乘结果为负,说明两个向量的夹角>90(用来判断目标在角色身前还是身后)
2.叉乘Cross product
- 叉乘结果向量c与两个初始向量a,b正交
- c的方向定义为垂直于a和b所构成的平面,并且a,b和c构成右手螺旋定则,也就是右手四指方向从a转向b,大拇指即得到c方向
- 常用于生成座标系
- c的模即以a和b为两条边的平行四边形的面积
叉乘属性
笛卡尔座标系下的叉乘
\[\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}
\]
图形学中的叉乘
- 用来判断左右
- 用来判断点在三角形的内侧/外侧
- 假如点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)
- 将向量视为列矩阵
例题
第一个?=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}\)
- 属性
\[(AB)^\top=B^\top A^\top
\]
- 单位矩阵
\[I_{3\times3}=\begin{pmatrix}1&0&0 \\ 0&1&0 \\0&0&1\end{pmatrix}
\]
- A矩阵乘以A的逆矩阵,如果结果为单位矩阵,则称两者互逆。
\[AA^{-1}=A^{-1}A=I
\]
- AB乘积的逆,跟转置类似
\[(AB)^{-1}=B^{-1}A^{-1}
\]
向量的点乘叉乘用矩阵来表示
- 点乘
\[\vec{a}\cdot\vec{b}=\vec{a}^{T}\vec{b}=\begin{pmatrix}x_a&y_a&z_a \end{pmatrix}\begin{pmatrix}x_b\\y_b\\z_b \end{pmatrix}=(x_ax_b+y_ay_b+z_az_b)
\]
- 叉乘
\[\vec{a}\times\vec{b}=A*\vec{b}=\begin{pmatrix}0&-z_a&y_a\\z_a&0&-x_a\\-y_a&x_a&0 \end{pmatrix}\begin{pmatrix}x_b\\y_b\\z_b \end{pmatrix}
\]