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

積木

No sub title

  C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
  140 Posts :: 1 Stories :: 11 Comments :: 0 Trackbacks

常用鏈接

留言簿(1)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

3D游戲開發(fā)中,該變換時常發(fā)生。下面記錄下,以備隨時查詢用。

說明:
1)
已經(jīng)向量v就不用說,可以是3維空間中的任意向量。(不論位置在哪都沒關系,因為向量是與位置無關的)
2)
繞已知向量n旋轉。此處的n向量,最好要規(guī)范化成單位向量。為什么需要此要求呢?其實很簡單,如果不規(guī)范化成單位向量,那么變換后的結果向量(假如稱為v'),其模就不會等于原向量v的模。因此就會出錯。(當然,如果非要用非規(guī)范化的單位向量參與計算的話,我們也是可以通過將v'進行一些處理,而得到最終想要的向量。)

下面,確認一下,變換矩陣以及變化公式所需的參數(shù)信息:
v(vx     ,      vy     ,  vz)                                :
為已經(jīng)向量
n(nx    ,    ny     ,  nz)                                :
v向量繞n旋轉的基向量
R(n     ,    angle)                                         : 為旋轉所需的變換矩陣。(注釋:angle就是角度,本來可以直接用那些希臘字母,結果發(fā)現(xiàn)用了,在此,我就輸入不了中文與英文字符了。蛋疼)

v'(vx'   ,    vy'     , vz')                                : 為變換后最終要得到的結果向量

根據(jù)3D變換基礎知識,可得如下公式:
v' = vR(n, angle)
其中,v向量已知。R(n, angle)根據(jù)推導,可得如下式子:
                     [ p' ]    [ nx2(1 - cos(angle)) + cos(angle)                            nxny(1 - cos(angle)) + nzsin(angle)                       nxnz(1 - cos(angle)) - nysin(angle) ]
R(n, angle) =  | q' | = | nxny(1 - cos(angle)) - nzsin(angle)                        ny2(1 - cos(angle)) + cos(angle)                           nynz(1 - cos(angle)) + nxsin(angle) |
                     [ r' ]     [ nxnz(1 - cos(angle)) + nysin(angle)                       nynz(1 - cos(angle)) - nxsin(angle)                        nz2(1 - cos(angle)) + cos(angle)    ]

所以,可得最終的v'向量。具體如下:

v' = vR = (vx, vy, vz)R;

vx'   = vx * (nx2(1 - cos(angle)) + cos(angle));
vx' += vy * (nxny(1 - cos(angle)) - nzsin(angle));
vx' += vz * (nxnz(1 - cos(angle)) + nysin(angle));

vy'   = vx * (nxny(1 - cos(angle)) + nzsin(angle));
vy' += vy * (ny2(1 - cos(angle)) + cos(angle));
vy' += vz * (nynz(1 - cos(angle)) - nxsin(angle));

vz'   = vx * (nxnz(1 - cos(angle)) - nysin(angle));
vz' += vy * (nynz(1 - cos(angle)) + nxsin(angle));
vz' += vz * (nz2(1 - cos(angle)) + cos(angle));

-----------------------------------------------------------------
有了上面的知識,現(xiàn)在就可以很容易理解。如下一段旋轉攝像機方向的代碼了:(注:代碼出自徐明亮作者所著《opengl游戲編程》一書中的內(nèi)容)

/**  旋轉攝像機方向  */
void Camera::rotateView(float angle, float x, float y, float z)
{
    Vector3 newView;

    
/** 計算方向向量 */
    Vector3 view 
= m_View - m_Position;        

    
/** 計算 sin 和cos值 */
    
float cosTheta = (float)cos(angle);
    
float sinTheta = (float)sin(angle);

    
/** 計算旋轉向量的x值 */
    newView.x  
= (cosTheta + (1 - cosTheta) * x * x)        * view.x;
    newView.x 
+= ((1 - cosTheta) * x * y - z * sinTheta)    * view.y;
    newView.x 
+= ((1 - cosTheta) * x * z + y * sinTheta)    * view.z;

    
/** 計算旋轉向量的y值 */
    newView.y  
= ((1 - cosTheta) * x * y + z * sinTheta)    * view.x;
    newView.y 
+= (cosTheta + (1 - cosTheta) * y * y)        * view.y;
    newView.y 
+= ((1 - cosTheta) * y * z - x * sinTheta)    * view.z;

    
/** 計算旋轉向量的z值 */
    newView.z  
= ((1 - cosTheta) * x * z - y * sinTheta)    * view.x;
    newView.z 
+= ((1 - cosTheta) * y * z + x * sinTheta)    * view.y;
    newView.z 
+= (cosTheta + (1 - cosTheta) * z * z)        * view.z;

    
/** 更新攝像機的方向 */
    m_View 
= m_Position + newView;
}



posted on 2012-06-12 11:29 Jacc.Kim 閱讀(1768) 評論(0)  編輯 收藏 引用 所屬分類: VC / C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩国产探花| 牛夜精品久久久久久久99黑人| 久久精品国产精品亚洲精品| 一本一本久久a久久精品综合妖精| 美女视频黄 久久| 母乳一区在线观看| 欧美激情中文字幕一区二区| 亚洲国产一区二区三区高清| 久久综合99re88久久爱| 欧美99在线视频观看| 亚洲国产成人精品久久久国产成人一区| 亚洲国产精品电影| 一区二区三区波多野结衣在线观看| 亚洲最新视频在线播放| 亚洲一区久久| 久久久人成影片一区二区三区| 久久一区二区三区四区五区| 欧美jjzz| 国产精品久久91| 激情自拍一区| 亚洲深夜福利网站| 玖玖玖国产精品| 日韩网站在线观看| 久久精品国产99精品国产亚洲性色| 欧美激情第8页| 国产女优一区| 99香蕉国产精品偷在线观看| 久久精品网址| 一区二区三区国产精华| 另类图片国产| 国产午夜精品视频免费不卡69堂| 亚洲精品五月天| 久久免费黄色| 亚洲综合欧美| 欧美人与性禽动交情品 | 麻豆国产精品777777在线| 欧美激情视频在线播放 | 国产精品中文字幕欧美| 亚洲第一主播视频| 久久精品人人做人人综合| 亚洲精品日韩综合观看成人91| 午夜精品久久久久影视| 欧美电影在线观看完整版| 国产午夜精品久久久久久免费视| 亚洲视频一二三| 欧美不卡在线| 久久国产欧美精品| 国产欧美精品一区| 亚洲一区欧美| 亚洲视频碰碰| 99国产精品99久久久久久粉嫩| 国产有码一区二区| 亚洲欧美日韩成人| 99这里只有精品| 欧美成年人视频网站| 精品二区视频| 久久综合激情| 久久久国产精彩视频美女艺术照福利| 国产美女精品免费电影| 午夜精品电影| 亚洲在线视频网站| 国产精品美腿一区在线看| 在线视频欧美精品| 99热精品在线| 国产精品美腿一区在线看| 小处雏高清一区二区三区| 亚洲一区二区高清| 国产精品视区| 久久精品日韩欧美| 久久久99久久精品女同性| 狠狠干综合网| 欧美激情第3页| 欧美二区在线| 亚洲一级高清| 亚洲欧美日韩天堂一区二区| 国产日韩精品视频一区| 久久婷婷综合激情| 你懂的视频一区二区| 日韩天天综合| 日韩视频精品在线| 国产精品午夜在线| 久久先锋影音av| 欧美激情精品久久久久久大尺度| 一本色道久久88精品综合| 这里只有精品电影| 国产日韩欧美亚洲一区| 欧美大片在线观看一区| 欧美日韩在线一区二区三区| 亚洲视频欧美在线| 久久精品日产第一区二区| 亚洲区免费影片| 亚洲一区二区三区在线观看视频| 国产亚洲欧美另类一区二区三区| 欧美国产一区在线| 欧美日韩在线播放一区二区| 久久精品理论片| 欧美巨乳在线观看| 久久久福利视频| 欧美精品一区二区在线观看| 午夜久久电影网| 久久人人看视频| 在线视频欧美日韩精品| 久久精品成人一区二区三区蜜臀| 一区二区免费在线视频| 久久久福利视频| 香蕉久久夜色精品国产使用方法| 欧美va亚洲va日韩∨a综合色| 性伦欧美刺激片在线观看| 久久夜精品va视频免费观看| 亚洲免费在线观看| 美女亚洲精品| 久久一区免费| 国产精品久久久久久久久果冻传媒| 激情av一区二区| 亚洲一区二区少妇| 一区二区三区高清| 久久久福利视频| 欧美中文在线视频| 欧美日韩在线播| 亚洲韩国青草视频| 国产在线一区二区三区四区| 亚洲精选久久| 在线日韩av| 久久久久se| 久久精品国亚洲| 国产一区二区视频在线观看| 亚洲调教视频在线观看| 国产精品99久久久久久久久| 欧美精品日韩一区| 亚洲夫妻自拍| 亚洲国产成人午夜在线一区| 久久久久国产精品一区| 免费成人高清视频| 在线精品一区| 老司机精品久久| 亚洲电影免费观看高清完整版在线观看| 国模一区二区三区| 久久久久国产精品厨房| 欧美多人爱爱视频网站| 亚洲第一区中文99精品| 免播放器亚洲一区| 亚洲国语精品自产拍在线观看| 亚洲理伦电影| 欧美成人一区二区三区在线观看 | 久久国产视频网站| 午夜激情综合网| 国产精品久久久999| 蜜臀av国产精品久久久久| 黄色成人av| 亚洲欧美日韩精品一区二区 | 欧美亚洲一区二区在线观看| 欧美色图一区二区三区| 99国产精品99久久久久久| 日韩一级精品| 国产精品乱码妇女bbbb| 午夜欧美精品| 媚黑女一区二区| 亚洲精品一区二区三区婷婷月| 国产精品美女久久久浪潮软件| 亚洲色图综合久久| 欧美日韩国产高清| 亚洲午夜电影网| 欧美日韩一区二区视频在线| 亚洲精选久久| 欧美黄在线观看| 亚洲电影在线免费观看| 欧美一区日本一区韩国一区| 久久久久久久高潮| 亚洲美女黄色| av成人激情| 久久在线视频在线| 一区二区三区高清在线| 欧美电影电视剧在线观看| 国产一区二区观看| 久久久久国产精品午夜一区| 亚洲欧美日韩精品久久奇米色影视 | 亚洲精品黄色| 99riav1国产精品视频| 国产美女精品免费电影| 午夜精品亚洲一区二区三区嫩草| 香蕉成人啪国产精品视频综合网| 国产真实精品久久二三区| 欧美精品一区二区视频| 午夜在线不卡| 日韩亚洲视频| 欧美成人一区二区三区在线观看| 亚洲自拍偷拍网址| 91久久精品国产| 国产麻豆精品theporn| 欧美成人午夜剧场免费观看| 欧美夜福利tv在线| 日韩视频中文| 欧美xart系列在线观看| 欧美专区在线| 亚洲欧美激情诱惑| 99在线热播精品免费99热| 国产亚洲精品一区二555| 欧美日韩国产一中文字不卡| 玖玖在线精品| 亚久久调教视频|