青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

天行健 君子當自強而不息

3D中的方位和角位移(2)

 

另一種描述方位的常用方法是歐拉角,這項技術(shù)以著名的數(shù)學家Leonhard Euler(1707 - 1783)的名字命名,他證明了角位移序列等價于單個角位移。

 

什么是歐拉角

歐拉角的基本思想是將角位移分解為繞三個互相垂直軸的三個旋轉(zhuǎn)組成的序列。這聽起來很復雜,其實它是非常直觀的(事實上,易于使用正是它的主要優(yōu)點之一)。之所以有"角位移"的說法正是因為歐拉角能用來描述任意旋轉(zhuǎn)。

歐拉角將方位分解為繞三個互相垂直軸的旋轉(zhuǎn),那么是哪三個軸?按什么順序?其實,任意三個軸和任意順序都可以,但最有意義的是使用笛卡爾坐標系并按一定順序所組成的旋轉(zhuǎn)序列。最常用的約定是所謂的"heading - pitch - bank"約定。在這個系統(tǒng)中,一個方位被定義為一個heading角,一個pitch角,一個bank角。它的基本思想是讓物體開始于"標準"方位 --- 就是物體坐標軸和慣性坐標軸對齊。在標準方位上,讓物體作heading、pitch、bank旋轉(zhuǎn),最后物體到達我們想要描述的方位。

如圖10.4所示,此時物體坐標系和慣性坐標系重合,heading為繞y軸的旋轉(zhuǎn)量,向右旋轉(zhuǎn)為正(如果從上面看,旋轉(zhuǎn)正方向就是順時針方向)。

經(jīng)過heading旋轉(zhuǎn)后,pitch為繞x軸的旋轉(zhuǎn)量,注意是物體坐標系的x軸,不是原慣性坐標系的x軸。依然遵守左手法則,向下旋轉(zhuǎn)為正,如圖10.5所示:

最后,經(jīng)過了heading和pitch,bank為繞z軸的旋轉(zhuǎn)量。再次提醒,是物體坐標系的z軸,不是原慣性坐標系的z軸。依據(jù)左手法則,從原點向+z看,逆時針方向為正。如圖10.6所示:

記住,當我們說旋轉(zhuǎn)的順序是heading-pitch-bank時,是指從慣性坐標系到物體坐標系。如果從物體坐標系變換到慣性坐標系,旋轉(zhuǎn)的順序就是相反的。"heading-pitch-bank"也叫作"roll-pitch-yaw",roll類似于bank,yaw類似于heading(事實上,yaw并不嚴格等于heading)。注意,在roll-pitch-yaw系統(tǒng)中,角度的命名順序與從物體坐標系到慣性坐標系的旋轉(zhuǎn)順序一致的。

 

關(guān)于歐拉角的其他約定

heading-pitch-bank系統(tǒng)不是唯一的歐拉角系統(tǒng)。繞任意三個互相垂直軸的任意旋轉(zhuǎn)都能定義一個方位,所以多種選擇導致了歐拉角約定的多樣性:

(1)heading-pitch-bank系統(tǒng)有多個名稱。當然,不同的名字并不代表不同的約定,這其實并不重要。一組常用的術(shù)語是roll-pitch-yaw,其中的roll等價于bank,yaw基本上等價于heading。注意,它的順序和heading-pitch-bank的順序相反,這只是語義上的。它定義了向量從物體坐標系變換到慣性坐標系的旋轉(zhuǎn)順序。(事實上,yaw和heading還是有技術(shù)上的差別,yaw是繞物體坐標系y軸的旋轉(zhuǎn),heading是繞慣性坐標系y軸的旋轉(zhuǎn)。因為這里的旋轉(zhuǎn)是在物體坐標系y軸和慣性坐標系y軸重合時進行的,所以這個區(qū)別并不重要。)

(2)任意三個軸都能作為旋轉(zhuǎn)軸,不一定必須是笛卡爾軸,但使用笛卡爾軸最有意義。

(3)決定每個旋轉(zhuǎn)的正方向時不一定必須遵守左手或右手法則。例如,完全可以定義pitch的正方向是向上的,并且這種定義方法非常常見。

(4)也是最重要的,旋轉(zhuǎn)可以以不同的順序進行。順序并不重要,任何系統(tǒng)都能用來定義一個方位,但heading-pitch-bank順序最為實用。heading度量繞豎直軸的旋轉(zhuǎn),它之所以有意義主要是因為我們所在的環(huán)境經(jīng)常有某種形式的"地面"。一般來講繞慣性坐標系的x或z軸的旋轉(zhuǎn)沒有什么意義。heading-pitch-bank順序下的另外兩個角的意義是:pitch度量水平方向的傾角,bank度量的是繞z軸的旋轉(zhuǎn)量。

 

歐拉角的優(yōu)點

歐拉角僅使用三個數(shù)來表達方位,并且這三個數(shù)都是角度。這兩個特點使歐拉角具有其他形式所沒有的優(yōu)點:

(1)歐拉角對我們來說很容易使用。它比矩陣和四元數(shù)簡單得多,這可能是因為歐拉角中的數(shù)都是角度,符合人們思考方位的方式。如果我們選擇了與所要處理的情況最符合的約定,那么就能直接描述出最重要的角度,例如,用heading-pitch-bank系統(tǒng)就能直接地描述出偏差角度。便于使用是其最大的優(yōu)點,當需要顯示方位或用鍵盤輸入方位時,歐拉角是唯一的選擇。

(2)最簡潔的表達方式。歐拉角用三個數(shù)來表達方位。在3D中,表達方位不能少于三個數(shù),如果要考慮內(nèi)存的因素,歐拉角是最合適的描述方位的方法。

(3)任意三個數(shù)都是合法的。取任意三個數(shù),它們都能構(gòu)成合法的歐拉角,而且可以把它看成一個對方位的描述。從另一方面說,沒有"不合法"的歐拉角。當然數(shù)值可能不對,但至少它們是合法的。可矩陣和四元數(shù)就不一定是這樣了。

 

歐拉角的缺點

用歐拉角表達方位時的缺點主要有:

(1)給定方位的表達方式不唯一。

(2)兩個角度間求插值非常困難。

讓我們仔細討論這些問題。第一個問題是對于一個給定方位,存在多個歐拉角可以描述它。這稱作別名問題,有時候會引起麻煩。因為這個原因,連一些基本的問題(如"兩組歐拉角代表的角位移相同嗎?")都很難回答。

第一種,在將一個角度加上360度的倍數(shù)時,我們就會遇到形式最簡單的別名問題。顯然,加上360度并不會改變方位,盡管它的數(shù)值改變了。

第二種,更加麻煩的別名問題是由三個角度不互相獨立而導致的。例如,pitch135度等價于heading180度,pitch45度,然后bank180度。為了保證任意方位都只有獨一無二的表示,必須限制角度的范圍。一種常用的技術(shù)是將heading和bank限制在+180度到-180度之間,pitch限制在+90度到-90度之間。這就建立了歐拉角的一個"限制范圍"。對于任意方位,僅存在一個限制歐拉角能代表這個方位(事實上,還有一個違反唯一性的現(xiàn)象需要處理。)

歐拉角最著名的別名問題是這樣的:先heading45度再pitch90度,這與先pitch90度再bank45度是等價的。事實上,一旦選擇+(-)90度為pitch角,就被限制在只能繞豎直軸旋轉(zhuǎn)。這種現(xiàn)象,角度為+(-)90度的第二次旋轉(zhuǎn)使得第一次和第三次旋轉(zhuǎn)的旋轉(zhuǎn)軸相同,稱作萬向鎖。為了消除限制歐拉角的這種別名現(xiàn)象,規(guī)定萬向鎖情況下由heading完成繞豎直軸的全部旋轉(zhuǎn)。換句話說,在限制歐拉角中,如果pitch為+(-)90度,則bank為0。

如果是為了描述方位,特別是在使用了限制歐拉角的情況下,別名是不會造成太大的問題的。現(xiàn)在來看兩個方位A和B間求插值的問題,也就是說,給定參數(shù)t,0 ≤ t ≤ 1,計算臨時方位C,當t從0變化到1時,C也平滑地從A變化到B。

這個問題的簡單解法是分別對三個角度作標準線性插值,公式如下:

但這里面有很多問題。

第一,如果沒有使用限制歐拉角,將得到很大的角度差。例如,方位A的heading為720度,方位B的heading為45度,720 = 360 x 2,也就是0度。所以heading值只相差45度,但簡單的插值會在錯誤的方向上繞將近兩周。如圖10.7所示:

解決問題的方法是使用限制歐拉角,然而,即使是限制歐拉角也不能完全解決問題。插值的第二個問題是由旋轉(zhuǎn)角度的周期性引起的。設(shè)A的heading為-170度,B的heading為170度。這些值在heading的限制范圍內(nèi),都在-180度到180度之間。這兩個值只相差20度,但插值操作又一次發(fā)生了錯誤,旋轉(zhuǎn)是沿 "長弧"繞了340度而不是更短的20度,如圖10.8所示:

解決這類問題的方法是將插值的"差"角度折到-180度到180度之間,以找到最短弧。

即使使用了這兩個角度限制,歐拉角插值仍然可能碰到萬向鎖的問題,它在大多數(shù)情況下會產(chǎn)生抖動、路徑錯誤等現(xiàn)象,物體會突然飄起來像是"掛"在某個地方。根本問題是插值過程中角速度不是恒定的。

歐拉角插值的前兩個問題雖然煩人,但并不是不可克服的。限制歐拉角和將角度差限制在一定范圍內(nèi)提供了簡單的解決方法。而對于萬向鎖,非常不幸,它非常令人討厭,是一個底層的問題。你可能會考慮重新規(guī)劃旋轉(zhuǎn),發(fā)明一種不會遭遇這些問題的系統(tǒng)。不幸的是,這不可能。這是一個用3個數(shù)表達3D方位的方法與生俱來的問題。我們可以改變問題,但不能消滅它們。任何使用三個數(shù)來表達3D方位的系統(tǒng),若能保證空間的唯一性,就都會遇到這些問題,如萬向鎖。


posted on 2008-02-12 16:48 lovedday 閱讀(3591) 評論(5)  編輯 收藏 引用

評論

# re: 3D中的方位和角位移(2) 2008-08-06 16:29 rabbit729

您好!你的文章很好!不過有句話我不理解:“當我們說旋轉(zhuǎn)的順序是heading-pitch-bank時,是指從慣性坐標系到物體坐標系。如果從物體坐標系變換到慣性坐標系,旋轉(zhuǎn)的順序就是相反的。”什么是從慣性坐標系到物體坐標系?是不是說旋轉(zhuǎn)慣性坐標系而物體坐標系不變?如果是這樣的話上面旋轉(zhuǎn)的圖是不是有問題?謝謝你的回復!我的郵箱:wlq_729@163.com  回復  更多評論   

# re: 3D中的方位和角位移(2)[未登錄] 2008-09-19 17:52 lovedday

慣性坐標系就是將世界坐標系的原點移動到物體所在處形成的坐標系,而物體坐標系是物體本身的坐標系。  回復  更多評論   

# re: 3D中的方位和角位移(2) 2008-12-20 11:01

不得不佩服
也不得不認輸!

受益非淺 學習了!  回復  更多評論   

# re: 3D中的方位和角位移(2) 2009-01-01 00:10 seizeF

對的,我也有rabbit729的疑問,就是書中的例子是以heading-pitch-bank來講解,但是看圖感覺好象是從object -> inertial。
對于這三者的順序,就像書上說的以bank-pitch-heading來表示從object-inertial的變換,那么是否可以隨意使用其他的組合?我看到WIKI上有所有不同的組合的旋轉(zhuǎn)矩陣,并且矩陣也是不同的,那么為什么我們使用bank-pitch-heading這種順序的組合呢?  回復  更多評論   

公告

導航

統(tǒng)計

常用鏈接

隨筆分類(178)

3D游戲編程相關(guān)鏈接

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区日韩一区| 91久久国产自产拍夜夜嗨| 黄色成人在线| 亚洲一区免费在线观看| 久久精品在线观看| 国产精品入口福利| 日韩视频二区| 欧美mv日韩mv国产网站app| 午夜在线一区| 亚洲电影免费观看高清完整版在线 | 快播亚洲色图| 最新日韩av| 久久综合久久久| 亚洲日本va午夜在线影院| 亚洲图色在线| 午夜亚洲影视| 久久综合九色综合欧美狠狠| 亚洲高清视频在线观看| 国产精品二区在线| 一区二区三区在线观看国产| 亚洲韩国日本中文字幕| 国产精品专区第二| 欧美+日本+国产+在线a∨观看| 欧美日韩一视频区二区| 久久高清免费观看| 久久综合网络一区二区| 久久青草欧美一区二区三区| 亚洲欧美电影在线观看| 国产亚洲精品v| 亚洲视频欧美视频| 亚洲人成毛片在线播放女女| 国产日韩精品一区| 久久不射中文字幕| 亚洲欧美在线观看| 欧美成在线视频| 91久久精品视频| 欧美伊人久久久久久午夜久久久久 | 亚洲国产日韩美| 欧美激情影音先锋| 亚洲国产欧美一区| 中国av一区| 老鸭窝毛片一区二区三区 | 欧美激情中文不卡| 99视频一区| 亚洲精品一区二区三区婷婷月| 亚洲视屏在线播放| 久久久噜噜噜久久| 欧美一区中文字幕| 欧美系列电影免费观看| 国产精品久久久久久久免费软件| 亚洲视频在线观看视频| 亚洲午夜在线观看| 亚洲经典一区| 黄色亚洲精品| 国产精品啊v在线| 久久免费国产精品| 久久精品女人| 国产精品五月天| 国产精品伦一区| 国产精品乱码人人做人人爱| 欧美成人免费小视频| 中国亚洲黄色| 亚洲性色视频| 亚洲欧美中文字幕| 欧美亚洲一级| 欧美激情bt| 欧美亚洲日本网站| 亚洲一区二区在线看| 久久久久久久999精品视频| 一区二区三欧美| 久久久久久97三级| 欧美在线电影| 久久人人看视频| 久久人人爽人人| 亚洲一区二区三| 欧美日韩精品一区二区三区| 国产精品盗摄一区二区三区| 国产亚洲激情在线| 久久精品视频导航| 亚洲视频在线观看视频| 亚洲欧美日产图| 欧美天天综合网| 制服丝袜亚洲播放| 久久蜜桃精品| 久久综合导航| 亚洲宅男天堂在线观看无病毒| 久久一区亚洲| 欧美激情一区二区三区成人| 国产精品sss| 亚洲一区在线看| 黄色av成人| 正在播放亚洲| 亚洲高清免费| 老司机aⅴ在线精品导航| 国产精品久久中文| 黄色成人av在线| 一区二区三区日韩| 欧美激情视频一区二区三区免费| 久久久中精品2020中文| 欧美成人黄色小视频| 亚洲美女91| 亚洲国产婷婷香蕉久久久久久99| 亚洲综合日韩中文字幕v在线| 国产亚洲激情视频在线| 亚洲一区网站| 在线免费观看日韩欧美| 久久人人爽人人爽爽久久| 久久久蜜桃一区二区人| 国产伦精品一区二区三区在线观看| 亚洲欧美国产高清| 欧美三级电影一区| 久久一区精品| 欧美成人午夜激情视频| 一区二区三区欧美| 亚洲伊人网站| 在线国产精品播放| 亚洲天堂视频在线观看| 伊人天天综合| 久久亚洲私人国产精品va| 一区二区日本视频| 国产精品亚洲一区| 亚洲国内精品| 亚洲视频视频在线| 亚洲精品一区二区三| 男男成人高潮片免费网站| 亚洲综合电影一区二区三区| 日韩亚洲欧美一区二区三区| 亚洲免费中文| 99精品欧美| 国产日韩亚洲欧美综合| 久久久亚洲影院你懂的| 午夜精品一区二区三区四区| 欧美午夜激情视频| 麻豆精品在线视频| 国产精品黄视频| 久久国产88| 亚洲综合激情| 久久久精品日韩| 国产伦精品一区| 99热这里只有成人精品国产| 夜夜嗨av一区二区三区四区| 欧美91大片| 亚洲精品国产精品国自产观看| 国产精品区二区三区日本| 亚洲欧美在线aaa| 亚洲精品国产日韩| 欧美+亚洲+精品+三区| 欧美一级理论片| 亚洲精品一区二区三区不| 欧美一区二区私人影院日本 | 亚洲精品日韩精品| 亚洲系列中文字幕| 久久综合狠狠综合久久综合88 | 一区二区三区日韩精品| 亚洲精品国产视频| 欧美午夜欧美| 国产精品二区在线| 亚洲精品孕妇| 国产精品一区免费视频| 夜夜夜久久久| 亚洲成色精品| 99精品黄色片免费大全| 国产亚洲在线观看| 国模套图日韩精品一区二区| 欧美日韩免费在线视频| 国产精品毛片在线看| 久久成人精品无人区| 一本色道久久综合狠狠躁篇的优点| 欧美国产欧美亚洲国产日韩mv天天看完整 | 久久久亚洲影院你懂的| 麻豆91精品| 亚洲欧美变态国产另类| 亚洲成色777777在线观看影院 | 日韩系列欧美系列| 激情成人亚洲| 91久久夜色精品国产九色| 国产精品中文在线| 国产精品高潮呻吟久久av无限| 亚洲激情在线| 一区二区欧美视频| 久久免费高清视频| 久久网站热最新地址| 国产欧美日韩精品a在线观看| 国产精品v欧美精品v日韩| 欧美日韩精品久久久| 欧美另类人妖| 国产精品乱码一区二三区小蝌蚪| 精品不卡一区| 一区二区三区产品免费精品久久75 | 国产一区二区| 亚洲精品乱码视频| 久久久伊人欧美| 久久婷婷国产综合精品青草 | 久久精品国产亚洲aⅴ| 国产精品视屏| 欧美日韩精品福利| 米奇777超碰欧美日韩亚洲| 亚洲香蕉伊综合在人在线视看| 亚洲国产国产亚洲一二三| 久久成人综合视频|