矩阵

矩阵行列式与余子式

矩阵的逆

矩阵和变换

3D图形学中的矩阵变换(一)

3D图形学中的矩阵变换(二)

3D图形学中的矩阵变换(三)

矩阵的维度和记法

矩阵类似于一个二维数组一样的东西,在计算机当中有些时候可以把二维数组当作矩阵来使用 只不过在数学的概念上是完全不同的 一般的用 NXC 表示一个N行C列的矩阵 矩阵的元素从1开始,每个元素分别用i和j表示它的行数和列数 m[i][j]

Screenshot 2022-12-29 at 6.25.02 PM.png

矩阵的转置

💡 矩阵的转置,就是将矩阵的行变成矩阵的列,矩阵的列变成矩阵的行 如果将转置过的矩阵,再做一次转置,就变成原来的矩阵 M^TT=M

Screenshot 2022-12-29 at 6.30.06 PM.png

向量也是一种矩阵

可以将其看作是1行3列的行矩阵,其转置是3行1列的列矩阵

所以有些时候在讨论行向量与列向量,就是以下两种不同的矩阵形式的向量(按照矩阵的概念在描述它)

Screenshot 2022-12-29 at 6.31.58 PM.png

矩阵和标量的乘法

💡 将矩阵的每一个元素和标量相乘即可 标量无论放在矩阵的前面还是后面,都是同一个结果

Screenshot 2022-12-29 at 6.35.54 PM.png

矩阵和矩阵的乘法

设A为mp的矩阵,B为pn的矩阵,那么称mn的矩阵C为矩阵A与B的乘积,记作C=AB ,其中矩阵C中的第i行第j列元素可以表示为:

Untitled

如下图所示

Untitled

Untitled

Untitled

Screenshot 2022-12-29 at 6.44.23 PM.png

💡 矩阵的乘法是有顺序的AxB与BxA的结果是不一样的 💡 1、当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。 2、矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。 3、乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。

Untitled

Untitled

基本性质

  1. 乘法结合律: (AB)C=A(BC).
  2. 乘法左分配律:(A+B)C=AC+BC
  3. 乘法右分配律:C(A+B)=CA+CB
  4. 对数乘的结合性k(AB)=(kA)B=A(kB).
  5. 转置 (AB)T=BTAT.
  6. 矩阵乘法在以下两种情况下满足交换律。

- AA=AA,A和伴随矩阵相乘满足交换律。 - AE=EA,A和单位矩阵或数量矩阵满足交换律。

通常在3D游戏开发当中,经常会用到向量与矩阵的相乘

当把列向量变为一个行向量,行向量必须放在矩阵的坐标相乘,否则相乘的结果是不一致的,为了保证一致性,列向量处于右边相乘的时候,将左边的矩阵进行一个转置操作过后,才能够得到一个不变分量的一个结果向量

Screenshot 2022-12-29 at 7.58.18 PM.png

在CG当中有一个函数mul,相乘的函数

💡 这个函数有两种重载方式mul(M,V);和mul(V,M); 为了保证mul的分量结果一致,在函数内部的处理当中,当V在后面的时候,会对M进行一个转置操作,保证其结果与第一种重载的函数的分量一致

单位矩阵

在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,这种矩阵被称为单位矩阵。 它是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1。 除此以外全都为0。 根据单位矩阵的特点,任何矩阵与单位矩阵相乘都等于本身

Screenshot 2022-12-29 at 8.06.37 PM.png

二、 逆矩阵

方形矩阵M的逆矩阵,表示为

Untitled

,当在任意一侧将M乘以

Untitled

时,其结果都是单位矩阵。

Untitled

并不是所有矩阵都有逆矩阵。一个明显的例子就是一个行或列填充0的矩阵–无论这个矩阵乘以什么,结果中相应的行或列也将满0。如果某个矩阵具有逆矩阵,则称其为可逆矩阵或非奇异矩阵。不具有逆矩阵的被称为是不可逆矩阵或奇异矩阵。 奇异矩阵的行列式为零,非奇异矩阵的行列式为非零。检查行列式的大小是最常用的可逆性测试,因为这样最简单和最快的。基于经典伴随矩阵,可以计算矩阵的逆矩阵。 2.1 经典伴随矩阵 M的经典伴随是以下余子式的矩阵的转置:

Untitled

2.2 逆矩阵——正式线性代数规则 为了计算矩阵的逆矩阵,可以将以下经典伴随矩阵除以行列式:

Untitled

如果行列式为零,则除法是未定义的。 矩阵求逆的重要特性:

  • 矩阵的逆矩阵的逆是原始矩阵:

Untitled

  • 单位矩阵是他自己的逆:

Untitled

任何反射矩阵,或围绕任何轴旋转180度的矩阵是他们自己的逆矩阵。

  • 矩阵转置的逆矩阵是逆矩阵逆的转置:

Untitled

  • 矩阵乘积的逆等于矩阵的逆的乘积,注意,逆矩阵的乘法要采用相反的顺序:

Untitled

  • 逆矩阵的行列式是原始局好着呢的行列式的倒数:

Untitled

三、正交矩阵

3.1 正交矩阵——正式线性代数规则 当且仅当矩阵及其转置的乘积是单位矩阵时,方形矩阵M是正交的,定义如下:

Untitled

如果矩阵是正交的,则其转置矩阵和逆矩阵是相等的。

Untitled

四、关于4 x 4其次矩阵

4.1 关于4 x 4平移矩阵 假设w始终为1。标准三维矢量[x,y,z]将始终在四维中表示为[x, y, z, 1]。任何3 x 3变换矩阵都可以通过以下转换公式实现在四维中的表示:

Untitled

当将[x,y,z,1]形式的四维矢量乘以这种形式的4 x 4 矩阵时,得到与标准3 x 3情况相同的结果,唯一的区别是附加坐标 w = 1,具体如下:

Untitled

在四维中,可以用矩阵乘法表示平移:

Untitled

这种矩阵乘法仍然是线性变换。矩阵乘法不能表示四维中的“平移”,四维零矢量将始终变换回四维零矢量。 设R是一个旋转矩阵,设T是平移矩阵,这两个矩阵分别如下:

Untitled

然后先旋转再平移点v来计算新点

Untitled

,公式如下:

Untitled

这里变换的顺序很重要,因为选择使用的是行矢量,所以变换的顺序与矩阵从左到右相乘的顺序一致。 4.2 一般仿射变换 包含平移的仿射变换:

  • 围绕不穿过原点的轴旋转
  • 围绕不穿过原点的平面进行缩放
  • 围绕不穿过原点的平面反射
  • 在不穿过原点的平面上进行正交投影

Untitled

五、关于4 x 4矩阵和透视投影

5.1 针孔相机 针孔相机是一个盒子,一端有一个小孔。光纤进入针孔(因此会聚在一点),然后撞击盒子的另一端,即投影平面。

Untitled

如果将点投影到z = d平面上,得到公式如下:

Untitled

5.2 透视投影矩阵 从四维到三维空间的转换意味着除法,所以可以在 4 x 4矩阵中编码透视投影。 假设原始点有 w = 1。 通过点投影的公式,可以得到以下一个公分母:

Untitled

所以需要4 x 4矩阵,将乘以一个齐次矢量[x, y, z, 1]产生[x, y, z, z/d]。执行此操作的矩阵是:

Untitled