【GAMES101】三维旋转矩阵中绕三个轴旋转的矩阵公式
GAMES101網課中設計到的小推導,其實一點也不難,只不過老師講的概念比較繞,導致比較難記,所以在此記錄下比較方便記憶的思路。
首先給出結果公式:
根據之前的二維的旋轉矩陣(利用勾股定理和合角公式推導而得):
我們會發現三維旋轉中繞Z軸和X軸的旋轉矩陣與二維的旋轉矩陣類似。
以繞x軸為例,寫成直觀的形式就是:
y=cosα*y-sinα*z
z=sinα*y+cosα*z
也就是向-x軸方向看,在y0z這個平面上繞原點完成α角度的逆時針旋轉,這就是將三維問題轉換為二維
但是唯獨繞y軸時矩陣有些不一樣,是為什么呢? 其實這跟坐標軸間的正交關系有關:
根據定義,我們默認旋轉是繞原點逆時針,而叉乘結果是根據右手定則來決定,這也就是為什么x叉乘y得到z:
那么同樣的,繞y軸旋轉時就向-y軸方向看,在z0x這個平面上繞原點完成α角度的逆時針旋轉
根據前面,y叉乘z得x,繞x軸的旋轉公式是:
y=cosα*y-sinα*z
z=sinα*y+cosα*z
自然,z叉乘x得y,所以繞y軸的旋轉公式就是按順序將z、x代入繞x軸的旋轉公式:
z=cosα*z-sinα*x
x=sinα*z+cosα*x
寫成矩陣就是:
所以最后結論:
之所以繞三軸旋轉的矩陣公式和三軸間的叉乘有關系,是因為首先我們要把三維轉換為二維問題,這過程涉及到對第三軸方向的規定(比如繞x軸時,就要向-x軸方向看,在y0z這個平面上繞原點完成α角度的逆時針旋轉),而第三軸的方向是由二維平面上的兩軸的叉乘決定的,所以代入公式的時候順序不能亂
總結
以上是生活随笔為你收集整理的【GAMES101】三维旋转矩阵中绕三个轴旋转的矩阵公式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jquery1.9 下检测浏览器类型和版
- 下一篇: PHP IE中下载附件问题