何為萬向鎖,我們先抛棄掉那些理論,直接舉個栗子。
以你自身為對象。
首先,原地旋轉為第一個次元,也就是heading。
其次,正翻跟頭為第二個次元,也就是pitch。
然後,側翻跟頭為第三個次元,也就是bank。
這就是歐拉角的三個旋轉次元,這三個是有順序的,首先是原地旋轉,然後是正翻跟頭,最後是側翻跟頭。
當然這些都是沒有位移的。
假設你一開始是朝北站立,這就是你:
那麼開始旋轉了。
先順時針原地旋轉(heading)45度,這時候你朝東北站立。
然後正翻跟頭(pitch)90度,這時候你克服了地心引力,頭朝東北面朝下懸浮。
那麼這一波旋轉就結束了。
重置你的位置,朝北站立。
這一次先正翻跟頭(pitch)90度,你就當你是Superman(特意為你加了紅褲衩),頭朝北面朝下懸浮。
然後再順時針側翻跟頭(bank)45度,這時候你居然還是頭朝東北面朝下懸浮。
沒想到吧!
驚不驚喜?意不意外?刺不刺激?
舉完了土掉渣接地氣的例子,讓我們回歸到理論知識。
當pitch為±90°的時候,heading軸和bank軸是重合的,那麼在這種情況下,歐拉角的旋轉自由度便會減少一個,這也就是萬向鎖問題。
更多示例可以看維基百科Gimbal lock。(趁着還能看,趕緊看)
解決方案便是用四元數(Quaternion)表示方位(旋轉),我們會在下節課介紹四元數(如果有緣的話)。