本文已参与[新人创作礼]活动,一起开启掘金创作之路
图形学的数学基础(十一):矩阵进阶(下)
本章是深入矩阵的下半部分,将详细介绍正交矩阵,矩阵的正交化,齐次矩阵。
正交矩阵(OrthogonalMatrix)
数学定义
当且仅当矩阵及其转置的乘积是单位矩阵时,方形矩阵M是正交的。定义如下:
M是正交矩阵<=>MMT=I
根据上一章逆矩阵的定义,矩阵与其逆相乘等于单位矩阵(MM−1=I),因此,如果矩阵是正交的,则其转置矩阵和逆矩阵是相等的。
M是正交矩阵<=>MT=M−1
利用正交矩阵的这一特性,我们可以轻易的得到矩阵的逆,只要证明其是正交矩阵即可,这样就避免了复杂的的逆矩阵计算过程(使用转置矩阵即可)。图形学中有很多正交矩阵,例如旋转矩阵和反射矩阵都是正交的。
几何解释
在许多情况下,我们可能获得有关矩阵构造方式的信息,因此可以先验地知道矩阵仅包含旋转或反射。但是如果在我们事先对矩阵一无所知的情况下,如何判断矩阵的正交性呢?
根据正交矩阵的定义可知:
M是正交矩阵<=>MMT=I
⎣⎡m11m21m31m12m22m32m13m23m33⎦⎤⎣⎡m11m12m13m21m22m23m31m32m33⎦⎤=⎣⎡100010001⎦⎤
设以下矢量r1,r2,r3代表M的行:
M=⎣⎡−−−r1r2r3−−−⎦⎤
简化上述矩阵和转置相乘的表达式可得:
r1⋅r1=1r1⋅r2=0r1⋅r3=0
r2⋅r1=0r2⋅r2=1r2⋅r3=0
r3⋅r1=0r3⋅r2=0r3⋅r3=1
通过上述式子我们推导出正交矩阵需要满足以下几个条件:
- 当且仅当矢量为单位矢量时,矢量与自身的点积才为1。 因此r1,r2,r3为单位矢量。即矩阵的每一行必须是单位矢量。
- 当且仅当两个矢量相互垂直时,点积才为0, 因此r1,r2,r3相互垂直,即矩阵的行相互垂直。
结论: 当且仅当矩阵每一行都为单位矢量且相互垂直的矩阵才是正交矩阵。可以对矩阵的列做同样的描述。因为如果M是正交的,MT必然也是正交的。
矩阵的正交化
用于构造一组标正交基矢量的标准算法是Gram−Schmidt正交化。基本思想是按顺序遍历基矢量。对每个基矢量,减去与基向量平行的矢量,这必然会产生垂直矢量,具体推导细节可以参考之前的文章施密特正交化
Gram-Schmidt⎩⎨⎧v1=x1v2=v∥=x2−x⊥=x2−v1.v1x2.v1v1v3=x3−k1v1^−k2v2^=x3−v1^.v1^x3.v1^v1^−v2^.v2^x3.v2^v2^