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