[GAMES101]旋转矩阵的逆为什么等于其转置

一、背景

计算机图形学中,坐标变换一个重要的内容。在三维坐标空间中,使用齐次坐标可以达到对空间中点进行缩放(Scale)、平移(Translation)和旋转(Rotate)的效果。三维空间中的点可以使用 p = [ x , y , z , 1 ] ⊤ p = [x,y,z,1]^\top p=[x,y,z,1]表示,三维空间中向量可以使用 v = [ x , y , z , 0 ] ⊤ v=[x,y,z,0]^\top v=[x,y,z,0]表示。
本文根据games101第4节课程的内容,主要讨论在旋转变换中,旋转矩阵的逆为何等于旋转矩阵的转置。

二、问题描述

在games101第4节中闫老师介绍了空间中坐标的转换。其中第16张ppt如下:
View/Camera Transformation

其中旋转矩阵 R v i e w − 1 R_{view}^{-1} Rview1表示从坐标系统 T v i e w T_{view} Tview转换到坐标系统 M v i e w M_{view} Mview,相应的 R v i e w R_{view} Rview为从坐标系统 M v i e w M_{view} Mview转换到坐标系统 T v i e w T_{view} Tview。同时可以得知 R v i e w − 1 = R v i e w ⊤ R_{view}^{-1}=R_{view}^\top Rview1=Rview,那么为什么这么巧合 R v i e w − 1 = R v i e w ⊤ R_{view}^{-1}=R_{view}^\top Rview1=Rview?(就是ppt中的蓝色的WHY),本文接下来将证明 R v i e w − 1 = R v i e w ⊤ R_{view}^{-1}=R_{view}^\top Rview1=Rview

三、证明
1. 证明

原文中使用的是齐次坐标,为了便于计算,接下来将使用绝对坐标,那么 R R R R ⊤ R^\top R分别为:
R v i e w = [ x g × t x t x − g y g × t y t y − g z g × t z t z − g ] R_{view}= \begin{gathered} \begin{bmatrix} x_{g\times t} & x_{t} & x_{-g} &\\ y_{g\times t}&y_{t}&y_{-g} \\ z_{g\times t}&z_{t} & z_{-g} \end{bmatrix} \end{gathered} Rview= xg×tyg×tzg×txtytztxgygzg

R v i e w ⊤ = [ x g × t y g × t z g × t x t y t z t x − g y − g z − g ] R_{view}^\top= \begin{gathered} \begin{bmatrix} x_{g\times t} & y_{g\times t} & z_{g\times t} &\\ x_{t}&y_{t}&z_{t} \\ x_{-g}&y_{-g} & z_{-g} \end{bmatrix} \end{gathered} Rview= xg×txtxgyg×tytygzg×tztzg
即:
R v i e w = [ X Y Z ] R_{view}= \begin{gathered} \begin{bmatrix} X&Y&Z \end{bmatrix} \end{gathered} Rview=[XYZ]
R v i e w ⊤ = [ X ⊤ Y ⊤ Z ⊤ ] R_{view}^\top= \begin{gathered} \begin{bmatrix} X^\top\\ Y^\top\\ Z^\top \end{bmatrix} \end{gathered} Rview= XYZ

那么
R v i e w ⊤ ⋅ R v i e w = [ X ⊤ ⋅ X X ⊤ ⋅ Y X ⊤ ⋅ Z Y ⊤ ⋅ X Y ⊤ ⋅ Y Y ⊤ ⋅ Z Z ⊤ ⋅ X Z ⊤ ⋅ Y Z ⊤ ⋅ Z ] R_{view}^\top\cdot R_{view}= \begin{gathered} \begin{bmatrix} X^\top\cdot X & X^\top\cdot Y&X^\top\cdot Z\\ Y^\top\cdot X & Y^\top\cdot Y&Y^\top\cdot Z\\ Z^\top\cdot X & Z^\top\cdot Y&Z^\top\cdot Z \end{bmatrix} \end{gathered} RviewRview= XXYXZXXYYYZYXZYZZZ
因为 X , Y , Z X,Y,Z X,Y,Z三个向量模长都为1,并且相互垂直,因此可以得到:
X ⊤ ⋅ X = Y ⊤ ⋅ Y = Z ⊤ ⋅ Z = 1 X^\top\cdot X=Y^\top\cdot Y=Z^\top \cdot Z = 1 XX=YY=ZZ=1
X ⊤ ⋅ Y = X ⊤ ⋅ Z = 0 X^\top\cdot Y=X^\top\cdot Z=0 XY=XZ=0
Y ⊤ ⋅ Z = Y ⊤ ⋅ Z = 0 Y^\top\cdot Z=Y^\top\cdot Z=0 YZ=YZ=0
Z ⊤ ⋅ X = Z ⊤ ⋅ Y = 0 Z^\top\cdot X=Z^\top\cdot Y=0 ZX=ZY=0
那么
R v i e w ⊤ ⋅ R v i e w = [ 1 0 0 0 1 0 0 0 1 ] R_{view}^\top\cdot R_{view}= \begin{gathered} \begin{bmatrix} 1&0&0\\ 0&1&0\\ 0&0&1 \end{bmatrix} \end{gathered} RviewRview= 100010001
说明 R v i e w ⊤ = R v i e w − 1 R_{view}^\top=R_{view}^{-1} Rview=Rview1,即求证 R v i e w − 1 = R v i e w ⊤ R_{view}^{-1}=R_{view}^\top Rview1=Rview得证。
同时,也可以得到:
R v i e w ⋅ R v i e w ⊤ = R v i e w ⊤ ⋅ R v i e w R_{view}\cdot R_{view}^\top=R_{view}^\top \cdot R_{view} RviewRview=RviewRview

2. 正交矩阵

其实旋转矩阵 R R R R − 1 R^{-1} R1都为正交矩阵。根据维基百科的定义,正交矩阵为是一个方块矩阵 Q Q Q,其元素为实数,而且行向量和列向量皆为正交的单位向量,使得该矩阵的转置矩阵为其逆矩阵:
Q ⊤ = Q − 1 < = > Q ⊤ Q = Q Q ⊤ = I Q^\top=Q^{-1}<=>Q^\top Q=QQ^\top=I Q=Q1<=>QQ=QQ=I
其中 I I I为单位矩阵。

3. 旋转矩阵是正交矩阵的证明

其实根据1.证明2.正交矩阵的定义可以看出矩阵 R v i e w R_{view} Rview和矩阵 R v i e w R_{view} Rview都为正交矩阵。

四、总结

坐标转换在计算机图形学中是一个重要的内容,可以使用变换矩阵对空间点进行变换。变换可以分为缩放、平移和旋转,其中旋转矩阵 R R R是一个正交矩阵,因此满足 R − 1 = = R ⊤ R^{-1}==R^\top R1==R。假如从空间 B B B旋转变换到 A A A空间的旋转矩阵为 R B − > A R_{B->A} RB>A那么,从空间 A A A旋转变换到 B B B空间的旋转矩阵即为 R A − > B = R B − > A ⊤ R_{A->B}=R_{B->A}^\top RA>B=RB>A

五、参考

[1]. Lecture 4Transformation Cont.
[2]. 旋转矩阵(Rotate Matrix)的性质分析
[3]. 理解旋转矩阵的逆等于旋转矩阵的转置

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值