尤拉旋轉中的Gimbal Lock理解

2021-07-27 16:45:54 字數 622 閱讀 7773

三維旋轉矩陣戳這裡

or 這裡

gimbal lock是發生在尤拉旋轉上的乙個現象,euler旋轉,x,y,z座標系,是最符合常識的旋轉方式,

什麼是euler旋**

在中有詳細介紹,旋轉變換可以歸結為若干個沿著座標軸旋轉的組合,組合個數不超過三個並且兩個相鄰的旋轉必須沿著不同座標軸。所以可以用三個沿著座標軸旋轉的角度來表示變換,為euler角。

旋轉變換不可交換,有12種表示方式,分別為:xyz、xzy、xyx、xzx、yxz、yzx、yxy、yzy、zxy、zyx、zxz、zyz。此處的座標係為物體座標系。物體為剛體。xyx因為能夠滿足相鄰座標軸不能相同。

如果這裡還不理解,那麼,恢復到原始位置,即物體座標系與世界座標系相同,如果旋轉x=30之後保持x不變,此時很明顯,yz不共線,旋轉y與z並不是相同的效果。

gimbal lock分析如上所述。總結就是,其源自euler旋轉原理,此原理旋轉變數不可交換,所以有先後之分,所以可以改變後兩個軸而第一軸方向不變,所以產生軸共線,即gimbal lock。

又想到一點,如果只遵循旋轉變數不可交換而相鄰旋轉軸可以沿著同一座標軸,那又會產生yx共線這種現象甚至xyz同軸(此時不再遵循尤拉旋轉定理,沒有gimbal lock這種說法了,雖然很像)

Unity程式設計 Unity中的尤拉旋轉

是z 軸與z 軸的夾角,是交點線與x 軸的夾角。xyz代表了三個角度,它們定義了一組有序的旋轉,即圍繞z軸旋轉z度,然後圍繞x軸旋轉x度,然後圍繞y軸旋轉y度。你應該只去讀取或者直接設定這些數值,不要增加它們,因為當角度超過360度將會失敗。應該使用transform.rotate去替代執行旋轉操作...

尤拉函式的推導

尤拉函式的定義 phi n 表示在1 n中與n互質的數 難點 與平常的遞推唯一不同的是 遞推不是由 n 1 推來,這給想出推理過程帶來了麻煩 如何充分使用互質這個概念,不像其他遞推能夠容易的列出遞推關係 分析 對互質的挖掘 兩個數的最大公約數 a,b 為 1 a,b 表示a,b的最大公約數 對構成b...

尤拉函式的求法

定義 尤拉函式f n 表示小於或等於n的數中與n互質的數的個數 通式 f n n 1 1 p1 1 1 p2 1 1 pn 其中p1,p2 pn為x的所有質因數,x是不為0的整數。1 1 唯一和1 互質的數 小於等於1 就是1本身 注意 每種質因數只乙個。比如12 2 2 3那麼 12 12 1 1...