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

孔雀開發小屋

專注并致力于手機客戶端開發
<2010年8月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

統計

  • 隨筆 - 103
  • 文章 - 0
  • 評論 - 251
  • 引用 - 0

常用鏈接

留言簿(38)

隨筆分類

隨筆檔案

關注的博客

朋友的博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

四元數概念及其應用
學習3D編程,四元數是不得不學的。其概念的引入和定義都比較抽象,今學了,總結歸納如下:

介紹四元數之前,先做如下約定:

1.采用右手坐標系(OpenGL)

2.旋轉次序:x->y->z

3.  矩陣是列優先存儲


1.
什么是四元數?

直接用數學上的定義來解釋,因為我很難在現實生活中找到可以描述明白的例子。

 

i, j, k 為虛數

Q = w + xi + yj + zk

其中w是實數,而x,y,z為復數。

另外一種常見的表達方式是:

Q = [w, v]

其中v=(x,y,z)稱為矢量部(雖然稱為矢量,但是這個不是三維空間中的矢量,而是四維空間的,想象吧L),w稱為標量部。


2.
四元數可以做什么?

有了四元數的概念還不行,四元數可以干什么?四元數可以用來描述方向。

先來看下如何求取四元數的長度:

||q|| = Norm(q) = sqrt(w2 + x2 + y2 + z2)

單位長度的四元數有以下屬性:

w2 + x2 + y2 + z2 = 1

所以我們使用如下方法來標準化(Normalize)一個四元數:

q = q / ||q|| = q / sqrt(w2 + x2 + y2 + z2)

 

使用一個單位四元數來描述方向,請記住必須是單位四元數才可以描述方向。


3.
四元數的乘法

因為一個單位四元數可以代表一個三維空間中的方向,那么兩個四元數相乘得到的結果仍然是一個四元數,這個四元素依舊可以標識一個方向。

 

給定兩個四元數:

Q1 = (w1, x1, y1, z1)

Q2 = (w2, x2, y2, z2)

 

Q1 * Q2 = (w1.w2 – v1.v2, w1.v2 + w2.v1 + v1 x v2)

注意:.代表向量間的點積,x代表叉積。v1=(x1, y1, z1)  v2=(x2, y2, z2)

 

優化一下:

w=w1w2 - x1x2 - y1y2 - z1z2
x = w1x2 + x1w2 + y1z2 - z1y2
y = w1y2 + y1w2 + z1x2 - x1z2
z = w1z2 + z1w2 + x1y2 - y1x2

 

4.四元數的轉換

       為什么要轉換,因為我們還不能直接使用四元數來進行3D物體的旋轉。在OpenGL中和Direct3D中都是通過矩陣來描述3D旋轉的。


4.1 四元數到矩陣的轉換

 

使用單位四元數轉換到矩陣:

Matrix = [ 1 - 2y2 - 2z2   2xy - 2wz      2xz + 2wy
             2xy + 2wz      1 - 2x2 - 2z2   2yz - 2wx
             2xz - 2wy      2yz + 2wx      1 - 2x2 - 2y2 ]

 

4.2 四元數到軸角的轉換

軸角也是一種表達空間旋轉的方式。

如果旋轉軸是:(ax, ay, az)

旋轉角度是:angle (單位:弧度)

那么四元數與軸角之間的轉換關系如下:

 

angle = 2 * acos(w)

ax = x / scale

ay = y / scale

az = y / scale

其中scale = sqrt(x2 + y2 + z2)


  4.3
軸角到四元數的轉換

假設旋轉軸是(ax, ay, az),記得必須是一個單位向量。

旋轉角度是theta. (單位:弧度)

那么轉換如下:

w = cos(theta / 2 )

x = ax * sin(theta / 2)

y = ay * sin(theta / 2)

z = az * sin(theta / 2 )


  4.4
歐拉角到四元數的轉換

如果你的歐拉角為(a, b, c)那么就可以形成三個獨立的四元數,如下:

 

Qx = [ cos(a/2), (sin(a/2), 0, 0)]
Qy = [ cos(b/2), (0, sin(b/2), 0)]
Qz = [ cos(c/2), (0, 0, sin(c/2))]


最終的四元數是Qx * Qy * Qz的乘積的結果。

 

 
5.
使用四元數來避免Gimbal Lock

 

基本思路如下:

1)  使用一個四元數來標識一個方向

2)  創建一個臨時的四元數來標識當前方向到新方向的變化

3)  右乘臨時的四元數和初始四元數,結果是一個合并了兩個四元數的新的四元數

4)  將四元數轉換成矩陣


6.
更深入的學習四元數

SLERP:球狀線性插值對于三位模型進行動畫處理非常有用,因為這種方式在模型的各種方向之間提供了平滑的轉換。



posted on 2010-08-18 14:01 孔雀 閱讀(5812) 評論(1)  編輯 收藏 引用 所屬分類: Graphics

評論

# re: 四元數概念及其應用 2010-08-19 22:08 普派

球狀線性插值對于三位模型進行動畫處理非常有用,因為這種方式在模型的各種方向之間提供了平滑的轉換。
  回復  更多評論    
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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久久精品日日躁夜夜躁国产| 亚洲国产婷婷综合在线精品 | 欧美电影在线播放| 国产日韩精品一区二区三区在线| 亚洲综合日韩| 午夜免费日韩视频| 欧美日韩一区二区欧美激情| 亚洲国产精品va在线看黑人动漫| 亚洲看片网站| 国产精品欧美久久久久无广告| 一区二区三区黄色| 欧美亚洲一级片| 国产主播一区二区三区四区| 午夜日韩在线| 免费人成精品欧美精品| 亚洲欧洲一区| 国产精品青草久久| 久久精品av麻豆的观看方式| 欧美va亚洲va日韩∨a综合色| 免费在线播放第一区高清av| 亚洲人成网站精品片在线观看| 亚洲深夜福利网站| 国产一区二区三区网站| 欧美91精品| 亚洲男人第一av网站| 男人的天堂亚洲| 亚洲欧美国产高清| 免费日本视频一区| 亚洲综合社区| 亚洲欧洲日本一区二区三区| 欧美三区在线| 亚洲欧美另类国产| 亚洲成色999久久网站| 亚洲女人天堂成人av在线| 国内成人精品视频| 欧美肉体xxxx裸体137大胆| 欧美在线观看你懂的| 亚洲精品一区中文| 免费不卡在线视频| 久久精品国产亚洲一区二区| 亚洲久久一区| 在线观看日韩国产| 国产日本精品| 欧美午夜精品久久久久免费视| 久久精品日韩| 亚洲在线视频网站| 亚洲精品国产精品乱码不99| 麻豆精品在线播放| 久久大逼视频| 亚洲欧美在线aaa| 99精品欧美一区| 亚洲高清不卡| **网站欧美大片在线观看| 国产日韩欧美精品一区| 欧美日韩国产色视频| 免费欧美在线| 久久中文字幕一区| 久久久综合香蕉尹人综合网| 在线一区二区视频| 一区二区三区不卡视频在线观看 | 亚洲高清不卡在线| 久久精品噜噜噜成人av农村| 亚洲欧美变态国产另类| 亚洲免费一级电影| 亚洲免费中文| 久久国产精品久久久久久久久久| 欧美一区三区三区高中清蜜桃| 亚洲永久免费观看| 亚洲欧美视频一区二区三区| 亚洲制服av| 亚洲欧美综合网| 欧美专区18| 欧美成人高清| 亚洲精品一区二区在线观看| 亚洲少妇在线| 亚洲毛片av| 在线成人亚洲| 亚洲欧洲日产国产综合网| 亚洲激情国产精品| 一区二区三区久久久| 亚洲男女自偷自拍图片另类| 在线综合亚洲欧美在线视频| 亚洲自拍偷拍网址| 久久se精品一区精品二区| 久热成人在线视频| 欧美二区在线播放| 亚洲免费成人av| 亚洲免费一区二区| 欧美一区二区三区在线观看| 久久久久一区二区三区| 欧美国产日韩在线观看| 欧美系列精品| 怡红院精品视频| 亚洲精品自在在线观看| 亚洲欧美日韩精品| 欧美成人自拍视频| 亚洲图片在线| 久久久999国产| 欧美日韩国产二区| 国产一区二区三区不卡在线观看 | 欧美一区久久| 模特精品在线| 亚洲主播在线播放| 蘑菇福利视频一区播放| 国产精品免费观看视频| 亚洲国产精品久久精品怡红院| 亚洲自拍三区| 亚洲激情在线观看| 久久福利一区| 国产精品日韩电影| 日韩午夜av| 美日韩在线观看| 亚洲一二三区精品| 欧美极品在线视频| 在线日韩欧美视频| 久久国产欧美| 亚洲一区二区三区精品视频 | 欧美一区视频| 欧美日韩亚洲成人| 亚洲福利小视频| 久久成人精品| 亚洲午夜激情免费视频| 久久婷婷激情| 国户精品久久久久久久久久久不卡| 亚洲一区二区日本| 亚洲韩国日本中文字幕| 久久亚洲春色中文字幕久久久| 国产精品一区二区久久精品| 亚洲综合欧美日韩| 99亚洲一区二区| 久久久久国产免费免费| 亚洲午夜久久久久久久久电影网| 欧美国产一区二区| 国内外成人免费激情在线视频网站| 亚洲一区二区3| 亚洲激情电影在线| 欧美成年人视频网站| 黄色另类av| 欧美在线|欧美| 午夜精品免费在线| 国产精品综合久久久| 亚洲伊人一本大道中文字幕| 日韩一级大片| 国产精品国产三级国产专区53 | 亚洲一区精彩视频| 国产精品网站在线| 久久精品国产亚洲一区二区| 羞羞答答国产精品www一本| 国产精品亚洲第一区在线暖暖韩国| 一区二区三区鲁丝不卡| 一本久道综合久久精品| 欧美日韩高清在线一区| 91久久久久久| 亚洲六月丁香色婷婷综合久久| 欧美精品在线观看播放| 亚洲性感美女99在线| 亚洲专区在线| 在线电影国产精品| 蜜桃视频一区| 欧美人与禽猛交乱配视频| 制服诱惑一区二区| 亚洲一区三区视频在线观看| 国产精品一区二区久久久| 久久亚洲不卡| 欧美日韩国产欧| 久久久精品午夜少妇| 欧美不卡福利| 午夜亚洲影视| 久久婷婷av| 亚洲自拍偷拍福利| 久色成人在线| 一区二区三区四区五区在线| 午夜激情一区| 亚洲高清在线视频| 一本色道久久精品| 亚洲国产视频一区| 亚洲一二三区在线| 亚洲国产成人一区| 亚洲欧美日韩国产中文| 在线日韩欧美视频| 亚洲视频免费观看| 亚洲国产女人aaa毛片在线| 一区二区三区视频在线| 亚洲盗摄视频| 亚洲一区二区四区| 亚洲精品中文字幕在线| 亚洲午夜女主播在线直播| 香蕉亚洲视频| 日韩亚洲精品视频| 久久成人免费日本黄色| 日韩一级黄色av| 久久青草欧美一区二区三区| 一区二区三区 在线观看视| 久久精品盗摄| 亚洲欧美国产另类| 欧美激情亚洲自拍| 免费在线观看成人av| 国产精品制服诱惑| 亚洲激情电影在线| 亚洲欧洲一级|