第六章

介绍了矩阵的几个更有趣和有用的性质,如仿射变换和透视投影,并解释了三维世界中四维向量和矩阵的目的和工作原理。

矩阵的行列式 Determinant

2X 2 和 3 X 3 矩阵的行列式

矩阵 的行列式表示为 ,或者

请注意,当我们编写矩阵的行列式时,我们用垂直线替换括号。可以用如下图形方式帮助理解记忆 //

但对于我个人更偏向于记忆缩写后的图对应关系: //

将其理解成多个 2 X 2 矩阵行列式

如果将 3 X 3 矩阵的行解释为三个向量,那么矩阵的行列式相当于三个向量的所谓“三重积”:

余子式和余因子 Minors and Cofactors

假设   是一个具有  𝑟行和  𝑐列的矩阵。考虑通过从   中删除行  𝑖和列  𝑗获得的矩阵。该矩阵显然有  𝑟−1行和  𝑐−1列。该子矩阵的行列式表示为  ,被称为  余子式。例如,余子式   是  2×2矩阵的行列式,该矩阵是从  3×3矩阵 获取的:

矩阵 在给定行和列处的余因子与相应的余子式相同,但余子式交替取反。

任意 nxn 的矩阵行列式

对于任意维度的矩阵 的行列式,存在多个等数定义,这里采用辅因子表达该定义,这个定义是递归的。选择任意行 ,行列式可以通过以下方式计算:

行列式的重要特性

  • 任何维度的单位矩阵的行列式都是 1:
  • 矩阵乘积的行列式等于行列式的乘积:
  • 矩阵转置的行列式等于原始行列式:
  • 如果矩阵中的任何行或列包含全 0,则该矩阵的行列式为 0:
  • 交换任意一对行都会否定行列式:
  • 将一行(列)的任意倍数添加到另一行(列)不会改变行列式的值!

行列式的几何解释

矩阵的行列式有一个有趣的几何解释。在 2D 中,行列式等于以基向量为两侧的平行四边形或斜框的有符号面积。 矩阵的行列式还可用于帮助对矩阵表示的变换类型进行分类。如果矩阵的行列式为零,则该矩阵包含投影。如果矩阵的行列式为负,则矩阵中包含反射。

矩阵的逆 Inverse of a Matrix

方阵  的逆矩阵,表示为  ,当我们在任一侧将   乘以    时,结果是单位矩阵。

介绍一种使用经典伴随矩阵(The classical adjoint)的方式计算矩阵的逆,这里以 3X 3 矩阵 为例:

  1. 首先计算 的余因子
  1. 的经典伴随矩阵是余因子矩阵的转置
  1. 经典伴随矩阵除以行列式

❗如果行列式为零,则除法是未定义的,这与我们前面的声明一致,即行列式为零的矩阵是不可逆的。

除了经典伴随矩阵还有其他的方法也可以用来计算矩阵的逆,例如高斯消除法,不少地方断言该技术更适合计算机实现,它需要更少的算术运算。但是经典伴随方法提供了一种无分支无静态展开循环的方式,用来计算常见的 2X 2、3X 3、4X 4 矩阵是个很好的选择。

特性

  • 矩阵的逆的逆是原始矩阵:
  • 单位矩阵是它自己的逆矩阵:
  • 矩阵乘积的逆等于矩阵的逆的乘积,以相反的顺序进行:
  • 逆矩阵的行列式是原始矩阵的行列式的倒数:

矩阵逆几何解释

矩阵的逆矩阵在几何学上是有用的,因为它允许我们计算一个变换的“逆”或“相反”,如果按顺序执行另一个变换,则该变换“撤消”另一个变换。

正交矩阵 Orthogonal Matrices

线性代数规则

一个方阵  是正交的,当且仅当矩阵和它的转置的乘积是单位矩阵:

所以它的转置和逆也是相等的

几何解释

对于正交矩阵,以下条件必须为真:

  • 矩阵的每一行必须是一个单位向量。
  • 矩阵的行必须相互垂直。

在线性代数中,如果一组基向量相互垂直,我们将它们描述为正交。不要求它们具有单位长度。如果它们有单位长度,则它们是标准正交基。因此,正交矩阵的行和列是标准正交基向量。

矩阵正交化

有时我们可能会遇到倾向于正交的矩阵,只是接近但不完美,这时为了方便利用正交的计算优势,我们通常会正交化矩阵,得到一个具有互相垂直的单位向量轴的矩阵,并且希望尽可能的接近于原始矩阵。 这里有个有名的算法被称作 Gram-Schmidt 正交化。基本思想是按顺序遍历基向量。对于每个基向量,我们减去该向量中与前面的基向量平行的部分,这必然导致垂直向量。

在应用这些步骤后,向量 都被保证相互垂直,并且因此形成正交基,但是还需要标准化向量。

Gram-Schmidt 算法是有偏的,这取决于基向量的排列顺序。不偏向任何特定轴的算法的变化是放弃在一次通过中完全正交化整个矩阵的尝试。我们选择一个分数 k,而不是减去所有的投影

该算法的一次迭代产生一组基向量,其比原始向量稍微“更正交”,但可能不完全正交。通过多次重复这个过程,我们最终可以在正交基上收敛。为  𝑘选择一个适当的小值(比如说  1/4),并迭代足够的次数(比如说10次),这会让我们非常接近。然后,我们可以使用标准的 Gram-Schmidt 算法来保证完全正交基。

4 X 4齐次矩阵 Homogeneous Matrices

4 D 齐次空间和 4X 4 变换矩阵在其仿射 3D 几何中的应用。

4D 齐次空间 4D Homogeneous Space

4D 向量有四个分量,前三个分量是标准的  𝑥、  𝑦和  𝑧分量。4D 向量中的第四个分量是  𝑤,有时称为齐次坐标。

2D 中的齐次坐标表示形式为 ,将 2D 平面想象为存在于平面 w=1 处的 3D 中,对于所有点皆可表示为 ,对于不在 w=1 平面中的点,我们通过将点投影到平面 w=1 上并除以 w 来计算对应的 2D 点,表示为

在给定的物理 2D 点 ,在齐次空间中有无限数量的对应点,这些点形成一条通过原点的直线。🗯️应由其所有点向原点对齐,具备相同的性质,所以取名为齐次空间

当 w=0 时,分区未定义,且在 2D 空间中没有对应的物理点,我们将形式为 的 2D 齐次点解释为"无穷远点",其定义了方向而不是位置,所以 是"点", 是"向量"。

以此类推 4D 齐次空间点的形式为 投影到 3D 空间中的点为 ,当 时表示"4维空间下的向量"。

变换矩阵

3x 3 变换举证表示不包含平移的线性变换,4X 4 矩阵提供了一种数学方式,扩展转换矩阵使其能够这样做。 假设此时  𝑤总是1。因此,标准3D 向量   将始终在4D 中表示为  。任何  3×3变换矩阵都可以通过使用转换来表示为4D。

当我们将形式  的4D 向量乘以该形式的  4×4矩阵时,我们得到与标准  3×3情况相同的结果,唯一的区别是附加坐标 w=1。

🔥有趣的是在4D 中,我们还可以将平移表示为矩阵乘法,这是我们在3D 中无法做到的:

重要的是要理解,这个矩阵乘法仍然是一个线性变换。矩阵乘法不能表示4D 中的“平移”,并且4D 零向量将始终被变换回4D 零向量。

我们可以将平移矩阵和变换矩阵链接成一个矩阵:

就和普通矩阵一样,我们合并两个矩阵得到如下,为了简化矩阵我们通过将 分配给向量 t 用块矩阵的形式来表达。

对于"无穷远点" (那些带有 的向量)乘以包含旋转、缩放和平移的 4D 变换矩阵时,得到的是另一个形式的无穷向量,也就是没有发生平移。

💭为何 4X 4 变换矩阵始终包含

  • 我们不能将  4×3 矩阵与另一个  4×3 矩阵相乘。
  • 我们无法反转  4×3 矩阵,因为该矩阵不是方阵。
  • 当我们将 4 D 向量乘以  4×3 矩阵时,结果是 3 D 向量。

一般仿射变换 General Affine Transformations

包含旋转的仿射变换其中心思想是将变换“中心”回归到原点,执行线性变换后在变换到原始位置。根据矩阵乘法我们得到:

4 X 4 矩阵和透视投影

3D 透视投影会投影到 2D 平面上。但与正交投影不同,投影不是平行的,投影视线相交于一点,称为投影中心。 投影中心位于投影平面的前面,因此投影仪在撞击平面之前会交叉,因此图像是倒置的。当我们将对象移离投影中心更远时,其正交投影保持不变,但透视投影会变小。 //

透视投影矩阵 Perspective Projection Matrices

透视投影在图形学中很重要,因为它模拟了人类视觉系统的工作方式。针孔相机是一个一端有一个小孔的盒子。光线进入针孔(从而会聚于一点),然后照射到盒子的另一端,即投影平面。 //

透视投影如何计算任意点 的坐标。 //

根据相似三角形得到

将投影平面移动到投影中心前面,可以消除额外的减号会造成不必要的复杂性。

//

操纵方程以获得一个公分母:

将分母以齐次坐标 的形式写入:

现在通过一个 4X 4 矩阵乘以齐次向量 得到新的齐次坐标

实际上这里使用的齐次矩阵也就被称为 4 X 4投影矩阵,它有以下特性需要注意:

  • 乘以该矩阵实际上并不执行透视变换,它只是将适当的分母计算为  𝑤。请记住,当我们通过除以  𝑤从 4 D 转换为 3 D 时,实际上会发生透视除法。 4×4矩阵提供了一种紧凑的方式来表示和操作投影变换。
  • 根据投影平面所放置的位置不同,该矩阵略有不同。
  • 真实的图形管线中的投影矩阵(有时候也被称作"裁剪矩阵")因为视锥体的不同可能还会根据相机的视场缩放 x 和 y 的值。