游戏中的线性代数
向量
加法:
减法:
指向被减向量
用法:(玩家到达目的地之间的向量)
target = destination.position - player.position
长度
单位向量
长度为1的向量
正规化(非单位向量转化为单位向量)
叉乘(标量相乘,运算结果为向量)
标量*向量 可以改变向量方向
点乘(运算结果为标量)
计算公式:
三角函数表示:
夹角计算:
向量点乘自身:
用点乘算投影长度:
向量b与单位向量a点乘的结果等于向量b在a方向上的投影长度
常用结论:
- 俩个单位向量点乘结果为0,俩向量垂直
- 俩个单位向量点乘结果为1,俩向量平行同向
- 俩个单位向量点乘结果为-1,俩向量平行异向
叉乘
表达式:
计算式:
口诀:xyzzy
右手法则:
右手食指对准a(第一个),中指对准b(第二个),大拇指的朝向就是c的朝向
应用:
在右手坐标系中,从a旋转到b,计算axb得到c的Z轴分量为正,则逆时针旋转
如果Z轴分量为负,顺时针旋转
线性插值
线性插值是用来计算俩个值中间的数值的,
插值公式,其中f为插值因子
矩阵
加减法:
对应分量相加减
标量乘法:
标量乘以每一个项
乘法
条件:矩阵只有当左边矩阵的列数等于右边矩阵的行数时,它们才可以相乘,乘积矩阵的行数等于左边矩阵的行数,乘积矩阵的列数等于右边矩阵的列数
具体计算可以用 矩阵乘法的理解中的方式去计算
例如:
单位矩阵:
例如3X3矩阵的单位矩阵为:
逆矩阵
转置
一个矩阵的行列对换