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

歡迎訪問 生活随笔!

生活随笔

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

综合教程

欧拉角/姿态角的旋转顺序问题

發(fā)布時間:2023/12/13 综合教程 55 生活家
生活随笔 收集整理的這篇文章主要介紹了 欧拉角/姿态角的旋转顺序问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

當(dāng)我們在OpenGL或Directx中需要對模型(比如飛機)的姿態(tài)進行旋轉(zhuǎn)變化時,可能會對變化順序有些疑惑,不知道偏航、俯仰、滾轉(zhuǎn)三者的先后順序。

首先我們需要了解的是:姿態(tài)的變換是針對模型本體的坐標系,比如我們規(guī)定飛機的頭指向-z軸,飛機的右側(cè)指向x軸,飛機的上方指向y軸。無論模型如何轉(zhuǎn)動,模型的本體坐標系始終相對模型不發(fā)生變化,我們的姿態(tài)變換也是針對模型本體坐標系的,每一次旋轉(zhuǎn)都是針對上一次旋轉(zhuǎn)后的模型本體坐標系進行旋轉(zhuǎn),也就是內(nèi)旋。在模型的本體坐標系下,模型的姿態(tài)轉(zhuǎn)動順序為偏航-俯仰-滾轉(zhuǎn),即yaw-pitch-roll,對應(yīng)的軸為y-x-z。

其次,模型所存在的世界有一個固定的坐標系,這個坐標系在模型創(chuàng)建出來的時候便已經(jīng)固定了,我們可以通俗的理解為obj模型文件中的組成模型樣子的點是固定不變的,這些固定不變的點存在于一個固定的坐標系下,即屏幕右側(cè)為x,屏幕上為y,屏幕外為z(也可能不是該軸向,按實際來定)。繞固定的坐標軸旋轉(zhuǎn)即為外旋。

姿態(tài)的變換是相對模型本體的,是內(nèi)旋,這是不容置疑的,即為偏航-俯仰-滾轉(zhuǎn)。

我們需要注意的是,矩陣乘法是外旋。當(dāng)我們通過矩陣對模型進行姿態(tài)變化時,正確的操作是先滾轉(zhuǎn),再俯仰,最后偏航。

但是為什么先滾轉(zhuǎn)就是對的呢,我的理解是這樣的,滾轉(zhuǎn)首先肯定是繞機頭軸向的滾轉(zhuǎn)才有實際意義,假如我們先繞y偏航45度,然后繞z或x俯仰,最后發(fā)現(xiàn)最后那個軸轉(zhuǎn)都不是正確的滾轉(zhuǎn)。

在Directx中 即為 點坐標×滾轉(zhuǎn)矩陣×俯仰矩陣×偏航矩陣,而在opengl中則為偏航矩陣×俯仰矩陣×滾轉(zhuǎn)矩陣×點坐標

總結(jié)

以上是生活随笔為你收集整理的欧拉角/姿态角的旋转顺序问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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