矩阵拆解

notion image
当我们有个矩阵 B ,那么我们可以将一个矩阵 B 拆解为: 位移矩阵、旋转矩阵、缩放矩阵、斜切矩阵。
位移矩阵是最好提取出来的 B=TC ,T为位移矩阵,C为一个3x3的矩阵。
notion image
那么我们的矩阵C 还能分解为 C=RD ,R为旋转矩阵,D是一个三角矩阵。
notion image
因为 旋转矩阵有个特殊的特性,旋转矩阵是正交矩阵
  1. 正交矩阵每一列都是单位矩阵,并且两两正交。最简单的正交矩阵就是单位阵。
  1. 正交矩阵的逆(inverse)等于正交矩阵的转置(transpose)。同时可以推论出正交矩阵的行列式的值肯定为正负1的
  1. 正交矩阵满足很多矩阵性质,比如可以相似于对角矩阵等等。
notion image
因为
notion image
所以
notion image
notion image
最终我们可以得到:
notion image
notion image
±给了我们一点自由。我们希望旋转是完全的,所以任何镜像都应该进入D。因此,det(C)为C的行列式,如果det(C) > 0,我们总是选择+,如果det(C) < 0,我们总是选择−(只是出于对称性)。这可以将任何镜像移动到D中。注意行列式不能为0,因为我们已经把上面的CT倒置了。
R现在可以通过计算得到:
notion image
 
之后 我们还可以将D矩阵再次的分解为 缩放矩阵 和 剪切矩阵
notion image
notion image
notion image
这样 我们就得到了我们分解的 H矩阵 与 S矩阵,
 
最终 我们可以得到 B = TRHS , 或者 B = RHST, 这里主要看T是行矩阵还是列矩阵。