日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

万向节锁--简单解释

發(fā)布時間:2024/3/12 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 万向节锁--简单解释 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

以前一直以為自己已經(jīng)清楚了這是怎么回事,也沒去細想,然而最近又遇到角度的問題,發(fā)現(xiàn)還是迷糊,于是又靜下心來看了網(wǎng)上的相關(guān)文檔,并以直白簡單的方式分享一下。

還是以unity為例吧

首先,萬向節(jié)鎖只發(fā)生于以模型自身坐標(biāo)系旋轉(zhuǎn)的情況下,代碼就是 ? ?transform.localEulerAngles = xxx 這種,而?transform.eulerAngles = xxx這種是不會有問題的。

究其區(qū)別,就是旋轉(zhuǎn)時軸會不會跟著一起旋轉(zhuǎn),會就有可能出現(xiàn)萬向節(jié)鎖。

原因如下:

由于坐標(biāo)軸兩兩之間互相垂直,因此,三個軸中,任意一個軸c旋轉(zhuǎn)90或-90度,都會使剩下的兩軸中的a軸跑到b軸的位置上去,b軸跑到a軸相反的方向。并且,歐拉角的旋轉(zhuǎn)是分解為三個軸向上的旋轉(zhuǎn)并且有一個順序的(比如先X再Y再Z),三維軟件會一直按照某一順序去應(yīng)用旋轉(zhuǎn)操作,因此,中間那一個軸轉(zhuǎn)了90或-90度時,第一個軸和第三個軸所應(yīng)用的旋轉(zhuǎn)從世界坐標(biāo)系上來看,是在同一個軸上,就是所謂的軸向丟失。

以unity坐標(biāo)系為例,y向上,x向右,z向屏幕里面。假設(shè)應(yīng)用順序為x->y->z,如果我想轉(zhuǎn)一個(10,90,20),那么我先在x上面轉(zhuǎn)10度,然后,y轉(zhuǎn)90度,此時,z軸指向了y旋轉(zhuǎn)前x的方向的反方向,所以,第三步,在z上轉(zhuǎn)20度,可以直接減在第一步里,在x上轉(zhuǎn)-10度,因此,可以認為此時在z軸向上應(yīng)用任何旋轉(zhuǎn)是沒有意義的。

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

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

順便一提,網(wǎng)上一個比較出名的視頻,外國人講萬向節(jié)鎖那個,剛開始看不理解啊,為什么三個環(huán)要有單向的嵌套關(guān)系呢?三個軸應(yīng)該是一動全動啊?現(xiàn)在想來,這個是數(shù)值上的一個建模,不是物理上的。從數(shù)值上考慮,最先旋轉(zhuǎn)的軸是不受剩下兩個軸的旋轉(zhuǎn)影響的,但從現(xiàn)象上來看,三個軸是一起動的。只不過,有些軸的旋轉(zhuǎn)是發(fā)生在其它軸的旋轉(zhuǎn)之前的。

總結(jié)

以上是生活随笔為你收集整理的万向节锁--简单解释的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。