向量
点-标量scalar
描述二维、三维空间一个点的坐标。例如点a(ax, ay)或a(ax, ay, az)
向量-矢量(vector)
- 方向(direction)
- 模(magnitude,俗称长度)的有向线段
例如a(ax, ay)或a(ax, ay, az),那这与点有什么区别呢?(加粗的区别)
单位向量-归一化运算normalized vector
向量运算-加法 (向量对向量)
加法可以求两向量的半角向量
设向量a = (ax, ay, az),向量b = (bx, by, bz) ,向量c
c = a + b = (ax, ay, az) + (bx, by, bz) = (ax + bx, ay + by, az + bz)
平行四边形法则:
三角形法则:首尾相连(谁在前谁就是结果向量起始点)
向量运算-减法(向量对向量)
向量减法可以求两个向量的相对偏移距离。
例如点b相对于点a的偏移距离
c = b – a,再对c取模运算就可得到二者间的距离
向量运算-向量乘法
向量与标量乘法或除法:几何意义是对向量进行按比例缩放。例如
k · a = k · (ax, ay, az) = (kax, kay, kaz) -放大k倍
向量与向量乘法:
点积
· 点b在单位向量a方向上的投影,投影具有符号性,取决于b的方向。
· 如果a不是单位向量,那么再乘以a的长度就能得到投影值。
· 如果一个向量v在自身投影,就是v·v = v2,继而可以求出v的模
几何意义二:角度
方位判断
· J = 90o, b垂直于a
· J > 90o, b在a的后方
· J < 90o, b在a的前方
叉积
向量a与向量b的叉积结果向量c,c垂直于向量a与b组成的平面,可把其看作平面法线。
矩阵
行矩阵
列矩阵
对角矩阵
· 也是方块矩阵,行与列相同
· 除了对角线以外的元素都为0,称为方块矩阵
单位矩阵-一种特殊的对角矩阵
· 默认用 I 表示单位矩阵
· 对角线元素全为1,其余元素都为0
· 任何矩阵与单位矩阵相乘,结果任为其本身
转置矩阵
· MijT = Mji
· 矩阵的行变为列,列变为行
· 行矩阵与列矩阵互为转置矩阵
逆矩阵
· 必须为方阵才有逆矩阵
· M-1·M = I //必须满足
· (M-1)-1 = M //
· I-1 = I //单位矩阵的逆矩阵=自身
· (MT)-1 = (M-1)T //转置矩阵的逆矩阵等于逆矩阵的转置
· (A·B·C)-1 = A-1·B-1·C-1
Unity提供了相关的逆矩阵函数
正交矩阵
· M·MT = MT·M = I
线性变换
· 缩放、旋转、平移
缩放: 只需要改变单位矩阵对角线元素值,(其中w分量为1)===> 目标矩阵(行矩阵)·S(q)
把M3x3看作缩放旋转,t3x1看作平移,1为w分量
将一个矩阵进行缩放、旋转、平移的复合变换先后顺序不一样,其结果也不一样。绝大多数情况下都是采用前述顺序。
矩阵的几何意义
为了进一步研究多元方程组,将多元方程组的系数组合在一个矩形数表,形成了矩阵。
例如把三元方程组转化为三阶矩阵
例如,已知子坐标空间C的3个坐标轴在父坐标空间P下的表示xc, yc, zc,以及其原点位置Oc。当给定一个子坐标空间中的一点Ac = (a , b ,c),按照下面4个步骤求出Ac在父坐标空间下的位置。
1从坐标空间原点开始Oc
2向x轴方向移动x个单位:Oc + axc
3向y轴方向移动y个单位:Oc + axc + byc
4向z轴方向移动z个单位:Oc + axc + byc + czc
Ap = Oc + axc +byc + czc
= (xoc, yoc ,zoc) + a(xxc, yxc, zxc) + b(xyc , yyc, zyc) + c(xzc, yzc, zzc)
透视投影矩阵:
摄像机的ViewPortRect中的W和H属性决定着Game视图横纵比
计算某一点是否在裁剪区域内,只需将该点与,由观察空间变换到裁剪空间。
注意此时的W分量,可能<0为负数。如果一个点在视锥体内,必须满足
正交投影矩阵
那么将顶点带入该矩阵相乘:
判断条件如下
法线变换