萬向節鎖 簡單解釋

2021-07-24 12:15:22 字數 764 閱讀 6050

以前一直以為自己已經清楚了這是怎麼回事,也沒去細想,然而最近又遇到角度的問題,發現還是迷糊,於是又靜下心來看了網上的相關文件,並以直白簡單的方式分享一下。

還是以unity為例吧

首先,萬向節鎖只發生於以模型自身座標系旋轉的情況下,**就是    transform.localeulerangles = *** 這種,而 transform.eulerangles = ***這種是不會有問題的。

究其區別,就是旋轉時軸會不會跟著一起旋轉,會就有可能出現萬向節鎖。

原因如下:

由於座標軸兩兩之間互相垂直,因此,三個軸中,任意乙個軸c旋轉90或-90度,都會使剩下的兩軸中的a軸跑到b軸的位置上去,b軸跑到a軸相反的方向。並且,尤拉角的旋轉是分解為三個軸向上的旋轉並且有乙個順序的(比如先x再y再z),三維軟體會一直按照某一順序去應用旋轉操作,因此,中間那乙個軸轉了90或-90度時,第乙個軸和第三個軸所應用的旋轉從世界座標系上來看,是在同乙個軸上,就是所謂的軸向丟失。

以unity座標系為例,y向上,x向右,z向螢幕裡面。假設應用順序為x->y->z,如果我想轉乙個(10,90,20),那麼我先在x上面轉10度,然後,y轉90度,此時,z軸指向了y旋轉前x的方向的反方向,所以,第三步,在z上轉20度,可以直接減在第一步裡,在x上轉-10度,因此,可以認為此時在z軸向上應用任何旋轉是沒有意義的。

同樣,如果上面的y是轉了-90度,那麼把z上的旋轉加到x上就可以達到同樣的效果。

我試了下,u3d的順序應該是z->x->y,大家可以試下(90,10,20)和(90,-10,0)的效果是一樣的。

萬向節鎖 簡單解釋

以前一直以為自己已經清楚了這是怎麼回事,也沒去細想,然而最近又遇到角度的問題,發現還是迷糊,於是又靜下心來看了網上的相關文件,並以直白簡單的方式分享一下。還是以unity為例吧 首先,萬向節鎖只發生於以模型自身座標系旋轉的情況下,就是 transform.localeulerangles 這種,而 ...

萬向節死鎖 萬向節死鎖 gimbal lock

如下圖一,把灰色箭頭想象成是一架飛機,紅,綠藍三個圈看作是三個外圍控制器,外圈帶動所有裡圈運動,裡圈的運動不影響外圈。1,首先,繞y軸旋轉 旋轉綠圈 來確定前進的方向。這時紅圈與藍圈都跟著旋轉。2,然後,繞x軸旋轉 旋轉紅圈 讓飛機仰視或俯視。這時藍圈跟著一起旋轉,綠圈不動。3,最後,繞z軸旋轉 旋...

萬向節動畫

萬向節動畫 1.建模 如圖分別建立3個網格和2個空物件 y軸3個網格物件,分別為 綠色input,cross,藍色output x軸的空物件aim 如圖x軸正向這邊 y軸的空物件track 如故y軸正向這邊 2.建立父級關係 依次選擇cross,aim,input,ctrl p 建立父級 3.建立約...