1. 程式人生 > >旋轉矩陣 尤拉角 四元數比較

旋轉矩陣 尤拉角 四元數比較

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

旋轉矩陣、尤拉角、四元數主要用於:

向量的旋轉、座標系之間的轉換、角位移計算、方位的平滑插值計算

各方法比較

任務/性質

旋轉矩陣

尤拉角

四元數

在座標系間(物體和慣性)旋轉點

不能(必須轉換到矩陣)

不能(必須轉換到矩陣)

連線或增量旋轉

,但經常比四元數慢,小心矩陣蠕變的情況

不能

,比矩陣快

插值

基本上不能

,但可能遭遇萬向鎖或其他問題

Slerp提供了平滑插值

易用程度

在記憶體或檔案中儲存

9個數

3個數

4個數

對給定方位的表達方式是否唯一

不是,對同一方位有無數多種方法

不是,有兩種方法,它們互相為互

可能導致非法

矩陣蠕變

任意三個數都能構成合法的尤拉角

可能會出現誤差積累,從而產生非法的四元數

不同的方位表示方法適用於不同的情況。下面是我們對合理選擇格式的一些建議:

l        

尤拉角最容易使用。當需要為世界中的物體指定方位時,尤拉角能大大的簡化人機互動,

包括直接的鍵盤輸入方位、在程式碼中指定方位(如為渲染設定攝像機)、在除錯中測試。這個優點不應該被忽視,不要以優化為名義而犧牲易用性,除非你去頂這種優化的確有效果。

l         如果需要在座標系之間轉換響亮,那麼就選擇矩陣形式。當然,這並不意味著你就不能用其他格式來儲存方位,並在需要的時候轉換到矩陣格式。另一種方法是用尤拉角作為方位的主拷貝但同時維護一個旋轉矩陣,當尤拉角發生改變時矩陣也要同時進行更新。

l         當需要大量儲存方位資料(:動畫),就使用尤拉角或四元數。尤拉角將少佔用25%的記憶體,但它在轉換到矩陣時要稍微慢一些。如果動畫資料需要巢狀座標系之間的連線,四元數可能是最好的選擇。

l         平滑的插值只能用四元數完成。如果你用其他形式,也可以先轉換到四元數然後再插值,插值完畢後再轉換回原來的形式。

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述