1.矢量(向量)
a.矢量是有方向的。矢量的模是指矢量在空间中的长度。单位矢量是指那些模为1的矢量。
点A到点B的向量AB, AB = B - A;
2.矢量运算相关
a.加减乘除,例:
a + b = (ax + bx, ay + by, az + bz),加法就是每个分量分别相加。这里a、b均是矢量。
a - b = (ax - bx, ax - bx, az - bz),减法就是每个分量分别相减。这里a、b均是矢量。
n * b = (n * bx, n * by, n * bz) ,乘法就是每个分量分别相乘。这里n是标量,b是矢量。
b / n = (bx / n, by / n, bz / n),除法就是每个分量分别相除。这里n是标量,b是矢量。
b.求模,例:
length(a) = sqrt(ax2 + ay2 + az2),这里a是矢量。
c.单位矢量,例:
normalize(a) = a / length(a),这里a是矢量。
d.矢量点积(有些符号不好打,我就用函数表示了)满足交换律。例:
dot(a, b) = ax * bx + ay * by + az * bz,这里a、b是矢量。dot(a, b) = aTb
而且 dot(a, b) = length(a) * length(b) * cos(A),A是角A。因此,cos(A) = dot(a, b) / (length(a) * length(b)),如果cos(A) > 0,说明a、b夹角大于90度;cos(A) < 0,说明a、b夹角小于90度;等于0就是等于90度。
如果,length(a) 和 length(b)都是1,那么公式简化:cos(A) = dot(a, b)。因此,角A = arccos(dot(a, b))。
e.矢量叉积
叉积一般用来求法向量。
cross(a, b) = (ay * bz - az * by, az * bx - ax * bz, ax * by - ay* bx),这里a、b是矢量。
叉乘不满足交换律,a、b矢量叉积得到的新向量是垂直于a、b矢量的夹角的平面,就是法矢量。叉乘顺序不同会得到方向不同的矢量,毕竟一个平面有正反两面嘛。
可以用左右手定则来判断,在此之前先说一下左右手坐标系,拇指代表x轴,食指代表y轴,中指代表z轴,如下图所示:
然后如果是左手坐标系就用左手,右手坐标系就用右手,如下图:
a × b的方向:四指由a开始,指向b,拇指的指向就是a × b的方向,垂直于a和b所在的平面;
b × a的方向:四指由b开始,指向a,拇指的指向就是b × a的方向,垂直于b和a所在的平面;
a × b的方向与b×a的方向是相反的,且有:a × b = -b × a。
3.矩阵
a.由m*n个数排成m行n列的表,称为m行n列矩阵。
b.矩阵转置
把行的元素变成列的元素,列的元素变成行的元素。
性质1:转置的转置等于原矩阵。
(MT)T = M
性质2:相乘后的矩阵等于反向相乘各个矩阵的转置
(AB)T = BTAT
c.矩阵和标量的乘法
是把标量依次和矩阵内的每个元素相乘。
d.矩阵加法与减法
前提条件是两个矩阵的行和列都相同,两个矩阵的各个元素之间相加或相减。
e.矩阵与矩阵相乘
两个矩阵相乘必须满足第一个矩阵的列数与第二个矩阵的行数相同。相乘的结果是,第一个矩阵的行 * 第二个矩阵的列的新矩阵。矩阵相乘不满足交换律,但满足结合律。方法是如下图所示:
另外,A * B = 转置(B) * 转置(A),这里A、B是矩阵,不过要满足相乘的条件。
f.单位矩阵
从左上角到右下角的对角线(主对角线)的元素均为1,其余元素为0的方正矩阵称为单位矩阵。任何矩阵与单位矩阵相乘,结果还是原来的矩阵(满足交换律)。
g.行列式
2阶行列式为:
3阶行列式为:【ps:主对角线为正(红的),副对角线为负号(蓝的)】
n阶行列式:【n阶行列式计算困难,所以就有了代数余子式】
性质1:|AB| = |A||B|,两个矩阵相乘的行列式结果等于两个矩阵格子的行列式结果相乘。
性质2:|AT| = |A|,行列式转置结果不变
性质3:矩阵任意行或列为0,行列式为0。
性质4:交换矩阵的任意两行或两列,行列式变负。
性质5:把行列式A的某行(或列)中各元同乘一数后加到另一行(或列)中各对应元上,结果仍然是A。
h.逆矩阵
逆矩阵必须是方阵(行等于列)。如果一个矩阵的行列式不为0,那么该矩阵可逆。
性质1:一个矩阵和它的逆矩阵相乘的结果为单位矩阵(满足交换律条件)。MM-1 = M-1M = I
性质2:逆矩阵的逆矩阵等于原矩阵。(M-1)-1 = M
性质3:单位矩阵的逆矩阵等于原矩阵本身。I-1 = I
性质4:转置矩阵的逆矩阵等于逆矩阵的转置。(MT)-1 = (M-1)T
性质5:矩阵串接相乘后的逆矩阵等于反向穿两各个矩阵的逆矩阵。式子:(AB)-1 = B-1A-1
逆矩阵的几何意义是用来还原矩阵变换的,如果一组向量v用矩阵M进行了一次变换,那么对变换后的向量用矩阵M的逆矩阵进行一次变换就会得到原来的矩阵。
M-1(Mv) = (M-1M)v = Iv = v
逆矩阵怎么求?例子:
第一步:
第二步:
第三步:
i.正交矩阵
正交矩阵式一种属性。正交矩阵每一行的模(平方和)都是1。
如果一个方阵M和它的转置矩阵的乘积是单位矩阵的话,矩阵M就是正交矩阵。MMT = MTM = I
正交矩阵矩阵的转置矩阵等于它的逆矩阵。MT = M-1 (ps:旋转矩阵和镜像矩阵是正交矩阵)
正交矩阵的几何意义:如果把一组向量转换成3x3的正交矩阵的话,就表示一组向量的各个分量相互垂直。
j.矩阵变换
因为3x3的矩阵只能表示缩放和旋转,不能表示平移,所以要把矩阵扩充到4x4来表示平移。
(x, y, z, w),w = 1,代表这是一个点;w = 0,代表这是一个向量,长度无限。
平移矩阵(符号不会打):
平移矩阵的逆矩阵为平移的反向平移,如图:
矩阵缩放,如图:
如果k1 = k2 = k3,那么我们称之为等比缩放。
缩放矩阵的逆矩阵,如下图:
选择矩阵,分为三个,分别绕x轴、y轴、z轴旋转,同样也是对于矩阵乘上列向量,如下图所示:
旋转矩阵的逆矩阵等于旋转矩阵的旋转的相反角。旋转矩阵式正交矩阵。
一般,我们是按照这样的顺序做变换:缩放 => 旋转 => 平移。为的是防止坐标的不准确。毕竟矩阵大部分情况下不满足交换律。