美文网首页
图形学笔记二 正交矩阵、转置矩阵和旋转

图形学笔记二 正交矩阵、转置矩阵和旋转

作者: 合肥黑 | 来源:发表于2021-12-23 07:56 被阅读0次

    参考课程P4:
    https://www.bilibili.com/video/BV1X7411F744?p=4

    一、正交矩阵和转置矩阵

    参考对称矩阵、对角矩阵与三角矩阵

    1.对称矩阵

    对称矩阵(Symmetric Matrix)是指元素以主对角线为对称轴对应相等的矩阵,例如:


    image.png

    可以看到,对称矩阵的转置等于其自身

    2.对角矩阵

    对角矩阵(Diagonal Matrix)是指除主对角线之外其他元素都为0的矩阵,例如:


    image.png
    3.三角矩阵

    三角矩阵(Triangular Matrix)分为上三角矩阵和下三角矩阵。
    上三角矩阵(Upper Triangular Matrix)是指主对角线以下元素全为0的矩阵,如:


    image.png

    下三角矩阵(Lower Triangular Matrix)是指主对角线以上元素全为0的矩阵,如:


    image.png
    可以看到,对角矩阵一定是三角矩阵。
    4.参考正交矩阵

    正交矩阵是指其转置等于逆的矩阵
    正交:可以简单理解成就是垂直.

    image.png
    对于正交矩阵,组成它的列向量 构成了一个空间的基,称之为:规范正交基。 而我们知道:对于一个空间而言,我们是可以找到很多个不同的基来表示的(参考相似矩阵的基底变换),那对于一个空间:假设已知的基底是非规范正交基,有什么办法获取到它的规范正交基呢?【施密特正交法】。

    以三维空间为例,我们希望正交矩阵是:


    image.png

    但是实际上他很可能是下边这个样子:


    image.png
    亦即以z轴为中心逆时针旋转了45°, 此时向量a,b,c依然相互正交,但是其列向量并不都在标准轴上.而对角化的结果是一个对角矩阵,本质就是把矩阵列向量都放到标准轴上。 那么很显然:正交矩阵一定可以做到!

    参考为何正交矩阵一定可以对角化?
    正交矩阵是一个在三维坐标系中歪着摆的立方体。对角化就是把这个立方体摆正来(也就是让它某一个顶点放在原点上,同时这个顶点的三条边正好对在三维坐标系的xyz三条轴上)。所以这个定理的意思就是,任何歪着摆的立方体劳资都能把它摆正了。这定理还是蛮直观的。

    所以结论就是:凡是正交矩阵一定可以对角化!

    5.转置矩阵

    将矩阵的行列互换得到的新矩阵称为转置矩阵,转置矩阵的行列式不变。


    image.png

    转置矩阵:


    image.png
    如果N阶方阵和它的转置相等,则称为对称矩阵。

    转置矩阵,在3Blue1Brown的线代视频中没有深入介绍,在此直接关注如何应用即可。

    5.在P4的开头,闫大佬提到了正交矩阵和转置矩阵
    image.png

    写出旋转θ和旋转负θ的矩阵,会发现旋转负θ,等于旋转θ的转置,这是正交矩阵的性质。通常求逆矩阵是很费性能的,而求转置矩阵则非常简单。

    二、3d transformations
    1.平移和缩放比较简单
    image.png
    2.旋转,这里视频讲的有点快,我描述一下自己的理解
    image.png
    这里使用右手法则,以绕X轴旋转为例,仍然使用3Blue1Brown的思路,去看i帽、j帽、k帽的基坐标变换:
    显然,绕x旋转时,x方向的基向量不变,即竖着的(1,0,0),然后就是y和z轴:
    image.png
    显然,y变成了(0,cos α,sin α)
    image.png
    显然,z变成了(0,-sinα,cosα)
    所以,绕x轴旋转的线性变换就是:
    image.png
    绕y轴时,我们可以看成有一个xz轴的平面在旋转,如图,x轴旋转到其左上方的红轴,变成(cos α,0,-sin a),z变成了(sin α,0, cos α)
    图画得有点难看……
    绕z旋转同理,就不画了。
    3.罗德里格旋转公式(Rodrigues' rotation formula)

    视频很快就开始讲这个公式,然后我没有听懂,还是自己搜索一下吧。首先是百度百科,给了这个公式的定义:

    向量旋转公式最早由法国数学家本杰明·奥伦德·罗德里格(Benjamin Olinde Rodrigues(1795–1851))导出,后来被应用在很多领域。设v是一个三维空间向量,k是旋转轴的单位向量,则v在右手螺旋定则意义下绕旋转轴k旋转角度θ得到的向量可以由三个不共面的向量v, k和k×v构成的标架表示:


    image.png

    然后B站视频有个公式推导,有了前面的线代基础,可以直接看P2:https://www.bilibili.com/video/BV1yW41177Y8?p=2

    image.png

    视频首先讲了绕Z轴的旋转,此时定义k向量与Z轴平行,V向量与X轴平行,然后旋转了θ,跑到了v rot位置。如图的公式很容易理解,后半部分的kv点乘其实就是右手法则(四根手指指向K之后向V弯曲,拇指的方向正是Y)下的Y坐标轴,再乘以sina θ,就是旋转后的向量在Y轴的投影即Y坐标值。

    image.png
    百度百科用的是这张图

    这里作者的思路就是,先把v分解成向上的向量和向左的向量。向左的向量经过旋转后,再加上向上的向量,就会组合成目标向量v rot。


    image.png

    这里上图打问号的部分,应该是作者搞错了。其实垂直分量的投影很容易理解,用v去点乘k,得到的是一个标量,即在k方向的投影向量的长度,为了表示这个投影向量,还需要指明它的方向,再乘以一个k单位向量即可:


    image.png
    然后就是求v垂直分量,这里用了向量的加法,等号两边换一下,就是v-v垂直分量。
    然后就是用上面那个公式,利用v垂直分量,求出相应的v垂直分量root。(v垂直分量root,这里不方便打出公式,用文字描述有点繁琐了,就是上图中最后一行的写法……)

    现在把上述结果合并后,提取公因式化简即可得到:


    image.png image.png

    然后就是证明如上图中方框内的两个东西是相等的,根据右手定则能看出方向是一致的。而大小呢,截图中漏写的,已经在红圈处补出来,它的值正是上面式子中的|v| sin<k,v>。

    在P3中,作者推导了矩阵表示,即vrot = R v,那个矩阵R是什么?这里没细看,直接放结论了:


    image.png

    相关文章

      网友评论

          本文标题:图形学笔记二 正交矩阵、转置矩阵和旋转

          本文链接:https://www.haomeiwen.com/subject/lsnvfrtx.html