unity中rotation與歐拉角旋轉不符合所看到的現象

rotation是物體的Transform組件下的一個屬性,用於旋轉物體;
(x,y,z)分別表示的就是繞x,y,z旋轉的角度,這個角度就是歐拉角;

歐拉角:假設一個原來物體的歐拉角爲(0,0,0),將它繞自身y軸旋轉90度後,那麼歐拉角爲(0,90,0)。

在unity中,rotation使用與對自身座標系操作的,每一個操作都是繞着自己的軸旋轉,而不是繞着世界軸旋轉的;因此,這會產生一個問題,即當繞着一個軸旋轉後,其它兩個軸的方向也會跟着改變。假設,當把一個物體先繞着x軸旋轉90度,再y->90,z->90,這與先y->90,x->90,z->90旋轉出來的結果是不同的,因此,在unity中規定,先旋轉y,再x,再z軸,並且每次旋轉都從(0,0,0)這個狀態出發。
假如,下面做兩次旋轉:你初始狀態爲(0,0,0),先旋轉爲(90,0,90),再旋轉爲(90,90,90)。在這個旋轉的過程中,你可能會錯誤的認爲是這樣的:
先(0,0,0)->(90,0,0)->(90,0,90),再(90,0,90)->(90,90,90),但事實上是這樣的:先(0,0,0)->(90,0,0)->(90,0,90),再(0,0,0)->(0,90,0)->(90,0,90)->(90,90,90)
這就符合"在unity中規定,先旋轉y,再x,再z軸,並且每次旋轉都從(0,0,0)這個狀態出發"。

150講輕鬆搞定Python網絡爬蟲

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章