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

天行健 君子當自強而不息

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

 

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

 

什么是歐拉角

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

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

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

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

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

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

 

關于歐拉角的其他約定

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

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

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

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

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

 

歐拉角的優點

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

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

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

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

 

歐拉角的缺點

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

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

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

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

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

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

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

如果是為了描述方位,特別是在使用了限制歐拉角的情況下,別名是不會造成太大的問題的。現在來看兩個方位A和B間求插值的問題,也就是說,給定參數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所示:

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

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

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

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


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

評論

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

您好!你的文章很好!不過有句話我不理解:“當我們說旋轉的順序是heading-pitch-bank時,是指從慣性坐標系到物體坐標系。如果從物體坐標系變換到慣性坐標系,旋轉的順序就是相反的。”什么是從慣性坐標系到物體坐標系?是不是說旋轉慣性坐標系而物體坐標系不變?如果是這樣的話上面旋轉的圖是不是有問題?謝謝你的回復!我的郵箱: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上有所有不同的組合的旋轉矩陣,并且矩陣也是不同的,那么為什么我們使用bank-pitch-heading這種順序的組合呢?  回復  更多評論   


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


公告

導航

統計

常用鏈接

隨筆分類(178)

3D游戲編程相關鏈接

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久国产一区| 国产精品国产a级| 欧美成人激情视频| 美女网站在线免费欧美精品| 欧美制服丝袜| 欧美在线免费| 欧美综合第一页| 亚洲精品久久久久久久久久久| 国产精品久久久久久久久免费樱桃 | 亚洲天堂久久| 亚洲欧美卡通另类91av | 欧美99在线视频观看| 亚洲国产成人在线播放| 亚洲国产成人高清精品| 99这里只有久久精品视频| 久久久之久亚州精品露出| 欧美高清hd18日本| 国模精品娜娜一二三区| 日韩亚洲欧美精品| 美女国产一区| 欧美一级久久久| 欧美视频导航| 一本色道久久综合亚洲精品按摩 | 久久婷婷国产综合精品青草| 亚洲第一在线综合网站| 欧美一区三区二区在线观看| 欧美日韩性生活视频| 亚洲欧洲精品一区| 欧美99久久| 蜜桃久久精品一区二区| 午夜精品美女自拍福到在线| 麻豆av一区二区三区久久| 国产噜噜噜噜噜久久久久久久久| 亚洲视频一二三| 亚洲欧洲一区二区三区在线观看| 久久久久国产精品www| 激情婷婷久久| 欧美freesex交免费视频| 欧美va亚洲va香蕉在线| 一区二区福利| 午夜一区二区三区在线观看| 国产三区精品| 亚洲电影中文字幕| 国产精品啊v在线| 久久久久久久久蜜桃| 久久av资源网| 亚洲日韩欧美一区二区在线| 亚洲另类在线视频| 激情六月婷婷久久| 欧美国产精品中文字幕| 国产精品swag| 亚洲高清不卡av| 国产精品免费网站在线观看| 久久久国产成人精品| 欧美日韩综合网| 老鸭窝91久久精品色噜噜导演| 久久精品国产99国产精品澳门| 91久久香蕉国产日韩欧美9色| 亚洲精品一区二区三区av| 精品动漫3d一区二区三区| 亚洲精品之草原avav久久| 国产精一区二区三区| 一本久久综合亚洲鲁鲁五月天| 国产综合亚洲精品一区二| 在线视频精品一区| 亚洲风情亚aⅴ在线发布| 亚洲视频在线观看视频| 在线亚洲一区二区| 亚洲精品乱码久久久久久蜜桃91 | 日韩视频在线一区二区三区| 影音先锋久久久| 久久福利毛片| 亚洲综合首页| 国产欧亚日韩视频| 欧美一区二区三区在线免费观看| 亚洲欧美一级二级三级| 国产亚洲欧美在线| 欧美伊人精品成人久久综合97| 午夜国产欧美理论在线播放| 亚洲视频在线观看| 国产精品久久久久77777| 亚洲女性喷水在线观看一区| 欧美在线视频免费观看| 亚洲欧洲在线播放| 国产精品视频最多的网站| 欧美一区二区在线免费观看 | 性感少妇一区| 红桃视频欧美| 国产精品爱啪在线线免费观看| 亚洲午夜激情| 亚洲国产高潮在线观看| 久久国产日韩欧美| 亚洲性感美女99在线| 在线免费观看欧美| 国产免费成人av| 欧美成人一品| 久久精品免视看| 午夜精品在线看| 亚洲精品自在在线观看| 母乳一区在线观看| 久久精品国产一区二区三区| 欧美精品一卡| 久久成人在线| 亚洲欧美日韩国产中文在线| 欧美日韩三级电影在线| 欧美大片免费| 欧美久久电影| 欧美日本一道本| 欧美日韩天堂| 国产精品自拍三区| 国产精品视频九色porn| 国产精品久久久久久av下载红粉| 久久婷婷人人澡人人喊人人爽| 欧美一区二区三区四区夜夜大片| 亚洲一区二区三区在线| 亚洲自拍三区| 久久久夜色精品亚洲| 久久视频这里只有精品| 久久夜色撩人精品| 欧美高潮视频| 国产精品一区二区欧美| 国产亚洲aⅴaaaaaa毛片| …久久精品99久久香蕉国产| 亚洲精品看片| 亚洲欧美日韩精品一区二区 | 国产一区二区三区网站| 在线日韩中文字幕| 亚洲欧美日韩精品久久奇米色影视| 亚洲免费在线视频一区 二区| 欧美亚洲免费高清在线观看| 狂野欧美激情性xxxx欧美| 亚洲美女精品成人在线视频| 亚洲夜间福利| 欧美美女日韩| 狠狠色综合网| 久久精品国产免费看久久精品| 最新国产の精品合集bt伙计| 午夜精品视频| 国产欧美视频一区二区三区| 亚洲欧洲在线播放| 欧美77777| 久久精品免视看| 亚洲丰满在线| 美女精品一区| 亚洲女人小视频在线观看| 亚洲精品久久久久久久久久久久久| 国产午夜精品理论片a级大结局 | 亚洲男人av电影| 亚欧成人精品| 久久精品国产亚洲a| 激情小说另类小说亚洲欧美| 美女脱光内衣内裤视频久久网站| 美女网站久久| 午夜在线观看欧美| 亚洲乱码久久| 亚洲激情在线观看视频免费| 国产精品免费小视频| 免费在线观看日韩欧美| 亚洲欧美一区二区在线观看| 亚洲精华国产欧美| 欧美亚洲免费高清在线观看| 亚洲大片精品永久免费| 国产精品99免视看9| 久久久久国产成人精品亚洲午夜| 在线亚洲观看| 亚洲精品一区二区三区樱花| 久久免费午夜影院| 欧美尤物巨大精品爽| 一区二区三区精品| 亚洲精品国产系列| 激情欧美一区二区三区| 国产精品久久7| 国产精品国产亚洲精品看不卡15| 欧美国产视频在线观看| 美国成人直播| 欧美日本成人| 欧美jizzhd精品欧美喷水| 久久激情五月婷婷| 久久久www成人免费毛片麻豆| 先锋影音国产一区| 午夜精品福利一区二区三区av| 亚洲午夜一区二区三区| 亚洲精品一区二| 宅男在线国产精品| 欧美一区二区三区免费视频| 久久精品国产亚洲a| 欧美大片第1页| 亚洲精品系列| 亚洲午夜在线| 亚洲自拍偷拍色片视频| 欧美一级视频一区二区| 久久久国产精彩视频美女艺术照福利| 久久久人成影片一区二区三区| 久久久91精品国产一区二区三区 | 欧美日韩国产a| 国产精品视频专区| 永久555www成人免费| 在线亚洲成人| 欧美成人资源| 亚洲欧美日韩国产综合在线 |