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

concentrate on c/c++ related technology

plan,refactor,daily-build, self-discipline,

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

常用鏈接

留言簿(9)

我參與的團(tuán)隊(duì)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

基本變換

平移變換
平移矩陣= (1 0 0 0   )
          (0 1 0 0   )
          (0 0 1 0   )
          (tx ty tz 1)
點(diǎn)p(px,py,pz,1)與平移矩陣相乘以后,就可以得到新點(diǎn)p' = (px+tx,py+ty,pz+tz,1),在計(jì)算機(jī)實(shí)時(shí)圖形學(xué)上面的平移矩陣好象是錯(cuò)誤的呀,要轉(zhuǎn)置以后才對(duì)的。
在書中記錄的平移是:
(1 0 0 tx)
(0 1 0 ty)
(0 0 1 tz)
(0 0 0 1 )
另外平移矩陣的逆矩陣應(yīng)該是:
(1 0 0 -tx)
(0 1 0 -ty)
(0 0 1 -tz)
(0 0 0  1 )
這里采用代數(shù)行列式的形式計(jì)算出來的,具體來說,就是將平移矩陣轉(zhuǎn)置,獲得轉(zhuǎn)置矩陣pt(t),那么p-1(t) = pt(-t).
在D3D里面一般用函數(shù)D3DXMatrixTranslation.

旋轉(zhuǎn)變換

繞x軸旋轉(zhuǎn)
(1 0 0 0 )
(0 cosA -sinA 0)
(0 sinA cosA 0)
(0 0 0 1)
假設(shè)存在某個(gè)點(diǎn)p(px,py,pz,1),那么經(jīng)過繞x旋轉(zhuǎn)以后,就可以得到
(px,pycosA + pzsinA, pzcosA-pysinA,1)
在D3D里面一般用函數(shù)D3DXMatrixRotationX

繞y軸旋轉(zhuǎn)
(cosA 0 sinA 0)
(0 1 0 0 )
(-sinA 0 cosA 0)
(0 0 0 1)
假設(shè)存在某個(gè)點(diǎn)p(px,py,pz,1),那么經(jīng)過繞y旋轉(zhuǎn)以后,就可以得到
(pxcosA-pzsinA,py,pxsinA+pzcosA,1)
在D3D里面一般用函數(shù)D3DXMatrixRotationY

繞z軸旋轉(zhuǎn)
(cosA -sinA 0 0)
(sinA cosA 0 0)
(0 0 1 0)
(0 0 0 1)
假設(shè)存在某個(gè)點(diǎn)p(px,py,pz,1),那么經(jīng)過z旋轉(zhuǎn)以后,就可以得到
(pxcosA + pysinA, pycosA - pxsinA, pz, 1) 
在D3D里面一般用函數(shù)D3DXMatrixRotationZ

當(dāng)然還有一個(gè)可以自定義的旋轉(zhuǎn)軸做法:
D3DXMatrixRotationAxis

對(duì)繞任意旋轉(zhuǎn)角度A的3x3旋轉(zhuǎn)矩陣RL來說,其對(duì)角線元素之和是一個(gè)與坐標(biāo)軸無關(guān)的常量,稱為跡
tr(R) = 1 + 2cosA

縮放變換
縮放矩陣
s = (sx 0 0 0)
    (0  sy 0 0)
    (0  0 sz 0)
    (0  0  0  1)
假設(shè)存在某個(gè)點(diǎn)p(px,py,pz,1),那么經(jīng)過縮放變換以后,就可以得到
(pxsx,pyxy,pzsz,1)
在齊次坐標(biāo)系里面,創(chuàng)建一個(gè)一致性縮放矩陣的另外一種方式是通過改變(3,3)處的元素實(shí)現(xiàn)
比如
s = (1 0 0 0)
    (0 1 0 0)
    (0 0 1 1)
    (0 0 0 factor)
在這里這個(gè)factor將起主要作用.
如果對(duì)縮放矩陣的一個(gè)或者三個(gè)分量置為空,就會(huì)產(chǎn)生一個(gè)反射矩陣,或者成為鏡像矩陣。如果其中兩個(gè)縮放因子是-1,那么將會(huì)旋轉(zhuǎn)180度

錯(cuò)切變換
錯(cuò)切變換是使圖形產(chǎn)生一個(gè)扭變。分為x和y方向的錯(cuò)切變換。

    圖形沿x方向的錯(cuò)切矩陣表示為 

     [1 0 0]
[x' y' 1] = [x y 1][b 1 0] = [ x+by y 1]
                   [0 0 1]

    此時(shí),圖形的y坐標(biāo)不變,x坐標(biāo)隨坐標(biāo)(x y)和系數(shù)b作線性變化。b>0,圖形沿+x方向做錯(cuò)切;b<0,圖形沿-x方向做錯(cuò)切;b≠0。

    圖形沿y方向的錯(cuò)切矩陣表示為     

     [1 d 0]
[x' y' 1] = [x y 1][1 1 0] = [ x dx+y 1]
                   [0 0 1] 

   此時(shí),圖形的x坐標(biāo)不變,y坐標(biāo)隨坐標(biāo)(x y)和系數(shù)d作線性變化。d>0,圖形沿+y方向做錯(cuò)切;d<0,圖形沿-y方向做錯(cuò)切;d≠0。 
一般在游戲中被用來扭曲整個(gè)場(chǎng)景,從而產(chǎn)生某種虛幻效果,或者抖動(dòng)來產(chǎn)生模糊反射效果。
Hxy:第一下標(biāo)是由錯(cuò)切矩陣改變的坐標(biāo),第二個(gè)下標(biāo)表示要進(jìn)行錯(cuò)切操作的坐標(biāo)。

          (1 0 s 0)
Hxz(s) =  (0 1 0 0)
          (0 0 1 0)
          (0 0 0 1)
假設(shè)存在P點(diǎn)(px,py,pz,1)與矩陣相乘可以得到(px + s pz, py, pz,1)
任何錯(cuò)切矩陣的行列式值總為1。

變換級(jí)聯(lián)
矩陣乘法存在不可交換性,將多個(gè)矩陣級(jí)聯(lián)為單個(gè)矩陣可以獲得比較好的效率。

剛體變換
僅由平移和旋轉(zhuǎn)兩種級(jí)聯(lián)所做成的變換稱為剛體變換,這種變換具有長(zhǎng)度和角度不變的特性。
可以將剛體矩陣X寫成一個(gè)平移矩陣T(t)和一個(gè)旋轉(zhuǎn)矩陣R的級(jí)聯(lián)。
            ( r00 r01 r02 tx)
            ( r10 r11 r12 ty)
X = T(t)R = ( r20 r21 r22 tz)
            ( 0   0   0   1)
X的逆矩陣 = (T(t)R)的逆矩陣 = R的逆矩陣*T(t)的逆矩陣 = R的逆矩陣 * T(-t)
首先對(duì)矩陣R左上角的3x3矩陣進(jìn)行轉(zhuǎn)置,然后改變平移矩陣T的平移值符號(hào),最后將這兩個(gè)矩陣進(jìn)行相乘即可以得到相應(yīng)的逆矩陣。
另外一種求X的逆矩陣方法:
                      (r,0轉(zhuǎn)置)
R = ( r,0 r,1 r,2) = (r,1轉(zhuǎn)置)
                      (r,2轉(zhuǎn)置)

X = ( R     t)
    ( 0轉(zhuǎn)置 1)

法線變換
法線必須通過用變換集合圖形的逆矩陣的轉(zhuǎn)置矩陣進(jìn)行變換。
在實(shí)際應(yīng)用中,如果變換矩陣是正交的,就沒有必要計(jì)算該矩陣的逆矩陣
在這種情況下,正交矩陣的逆矩陣就是轉(zhuǎn)置矩陣,可以用這個(gè)矩陣本身對(duì)法線進(jìn)行變換。

如果使用一個(gè)或者多個(gè)一致性縮放矩陣進(jìn)行變換,就不需要計(jì)算相應(yīng)的逆矩陣,因?yàn)檫@個(gè)縮放只影響變換后的法線長(zhǎng)度,而不影響其方向,在這種情況下,一般都要在矩陣變換對(duì)法線進(jìn)行變化之后,需要對(duì)法線進(jìn)行歸一化。

逆矩陣計(jì)算
1) 如果矩陣是單個(gè)變換或者一些給定參數(shù)的變換,那么很容易通過調(diào)換參數(shù)和矩陣順序計(jì)算出相應(yīng)的逆矩陣,比如M = T(t)R(s), 那么M的逆矩陣為R(-s)T(-t)
2) 如果矩陣是正交,那么其逆矩陣就是其轉(zhuǎn)置,任何的旋轉(zhuǎn)變換都是正交的。
3) 在不知道任何特殊信息的情形下,可以采用伴隨矩陣,克萊姆法則,LU分解,或者高斯消去法來計(jì)算逆矩陣


歐拉變換
主要用來構(gòu)造一個(gè)自定位(如相機(jī))或者任何實(shí)體處于特定方向的矩陣。
首先,需要建立一種默認(rèn)的觀察方向,通常情況下,頭部沿著y軸方向,面部朝向?yàn)閦軸負(fù)方向。
當(dāng)使用歐拉變換的時(shí)候,會(huì)出現(xiàn)所謂萬向鎖(Gimbal Lock),這種現(xiàn)象通常出現(xiàn)在旋轉(zhuǎn)變換的時(shí)候出現(xiàn),其中會(huì)缺少一個(gè)自由度。

改變head就是使觀察者搖頭說不,改變pitch就是點(diǎn)頭,改變r(jià)oll就是頭向一邊歪。

矩陣分解
主要應(yīng)用場(chǎng)合:
1)提取縮放因子
2)確定特定系統(tǒng)所需要的變換
3)確定模型是否只經(jīng)歷過剛體變換
4)在動(dòng)畫的關(guān)鍵幀之間插值
5)從旋轉(zhuǎn)矩陣中消除其中的錯(cuò)切變換

四元組
四元數(shù)是一個(gè)用來構(gòu)造強(qiáng)制變換的有力工具,在某些情況下,要比歐拉角和歐拉矩陣更具有優(yōu)勢(shì),特別是在遇到旋轉(zhuǎn)和定向的情況時(shí)更是如此。
數(shù)學(xué)背景
q = (qv,qw) = iqx + jqy + kqz + qw = qv + qw
qv = iqx + jqy + kqz = (qx,qy,qz)
i*i = j*j = k*k = -1, jk = -kj = i, ki = -ik = j, ij = -ji = k
乘法:
QR = (iqx + jqy + kqz + qw)(irx + jry + krz + rw)
   = i*(qyrz - qzry + rwqz + qwrx)
     + j*(qzrx - qxrz + rwqy + qwry)
     + k*(qxry - qyrx + rwqz + qwrz)
     + qwrw - qxrx - qyry - qzrz
   = qv * rv + rwqw - qxrx - qyry - qzrz

加法:
Q + R = (qv, qw) +(rv,rw) = (qv + rv, qw + rw)

共厄:
Q = (qv,qw)共厄 = (-qv,qw)

范數(shù):
n(Q) = qx * qx + qy * qy + qz * qz + qw * qw

同一性:
i = (0,1)

逆:
q的逆 = 1/n(Q) *Q共厄

共軛法則:

Q共軛 = Q共軛

( Q + R)共軛 = Q共軛 + R共軛

(QR)共軛 = R共軛Q共軛

范數(shù)法則:
n(Q共厄) = n(Q)

n(QR) = n(Q)n(R)

乘法定律:
  線性關(guān)系: P(sQ + tR) = sPQ + tPR
             (sP +tQ)R = sPR + tQR
  組合關(guān)系:P(QR) = (PQ)R

單位四元組Q=(qv,qw)的模n(Q)為1,基于此,Q可以表示為:
Q = (sinAuq,cosA) = sinAuq + cosA

對(duì)于一些三維向量uq來說,有||uq|| = 1,因?yàn)椋?br>n(Q) = n(sinAuq,cosA) = sinA*sinA*(uq.uq) + cosA*cosA = 1
當(dāng)且僅當(dāng)uq*uq = ||uq|| *||uq||.

球面線性插值
球面線性插值是在給定兩個(gè)單位四元組Q和R,以及一個(gè)參數(shù)t(0<=t<=1)的情況下計(jì)算插值四元組,
該運(yùn)算的代數(shù)形式可以用下面的復(fù)合四元組S表示:
S(Q,R,t) = (RQ的逆)tQ

slerp表示球面線性插值
slerp(Q,R,t) = sinA(1-t)/sinA*Q + sinAt/sinA *R
cosA = qxrx + qyry + qzrz + qwrw
對(duì)于0<=t<=1來說,slerp函數(shù)計(jì)算是唯一的插值四元組
這些四元組構(gòu)成了四維單位球面上從Q(t=0)到R(t=1)之間的最短弧。
這條弧位于一個(gè)圓上,這個(gè)圓由Q,R,以及原點(diǎn)組成的平面與四維單位球面相交形成的

Ai = Bi = Qi exp(-(log(QiQi-1)+log(QiQi+1))/4)

使用Qi,Ai和Bi對(duì)使用平滑三次樣條的四元組進(jìn)行球面插值
squad(Qi,Qi+1,Ai,Ai+1,t) = slerp(slerp(Qi,Qi+1,t),slerp(Ai,Ai+1,t),2t(1-t))

squad函數(shù)是由slerp函數(shù)重復(fù)使用球面插值而構(gòu)成的,該插值通過初始化方位Qi而不是Ai,Ai主要用來表示初始方位的切線方向。

從一個(gè)向量到另外一個(gè)向量的旋轉(zhuǎn)
四元組計(jì)算規(guī)則:
首先對(duì)s和t歸一化,然后,計(jì)算出單位旋轉(zhuǎn)軸u,具體通過式u = (s*t)/||s x t||來計(jì)算。
其次e = s.t = cos2A,||s * t|| = sin2A
其中2A表示s與t之間的夾角.
這樣,從s到t旋轉(zhuǎn)的四元組可以表示為Q =(sinAu,cosA).

posted on 2008-05-25 15:58 jolley 閱讀(1895) 評(píng)論(1)  編輯 收藏 引用

Feedback

# re: 實(shí)時(shí)計(jì)算機(jī)圖形學(xué)--圖形變換 2012-04-09 19:23 Code Knight
一般書上采用的是OGL的列矩陣書寫方式.  回復(fù)  更多評(píng)論
  


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美一级大片在线观看| 亚洲精品视频二区| 国产精品免费久久久久久| 国产精品一区二区在线观看网站| 国产精品欧美在线| 亚洲大片一区二区三区| 亚洲天堂成人在线观看| 亚洲一区二区在线观看视频| 久久免费视频一区| 亚洲最新合集| 乱中年女人伦av一区二区| 国产精品视频网| 一本到高清视频免费精品| 午夜精品www| 亚洲精品影视| 老司机午夜免费精品视频| 国产无一区二区| 亚洲一级在线观看| 亚洲国产色一区| 亚洲人成亚洲人成在线观看| 一区二区欧美日韩| 国产乱码精品一区二区三| 亚洲女爱视频在线| 亚洲午夜高清视频| 国产精品视频九色porn| 欧美一区二区在线观看| 亚洲欧美视频一区| 国产亚洲一本大道中文在线| 久久夜色撩人精品| 美女国产一区| 夜夜爽av福利精品导航 | 亚洲精品一区二| 亚洲激情第一页| 欧美日韩一级黄| 欧美一级夜夜爽| 久久精品卡一| 99视频热这里只有精品免费| 一区二区三区黄色| 狠狠色综合播放一区二区| 欧美激情精品久久久久久黑人| 欧美激情亚洲国产| 午夜精品久久| 久久人人97超碰精品888| 99精品国产高清一区二区| 亚洲欧美国产三级| 亚洲国产精品t66y| 亚洲深夜福利网站| 激情婷婷亚洲| 99精品视频免费在线观看| 国产一区av在线| 亚洲精品日本| 狠狠干狠狠久久| 99精品视频免费观看| 黄色成人免费网站| 夜夜嗨av一区二区三区免费区| 国产中文一区二区三区| 99精品热6080yy久久 | 久久久久亚洲综合| 欧美激情一区二区三区四区| 久久aⅴ国产欧美74aaa| 欧美激情一区二区三区高清视频 | 亚洲欧美日韩精品一区二区| 欧美在线一区二区| 亚洲社区在线观看| 噜噜噜久久亚洲精品国产品小说| 亚洲天堂偷拍| 蜜臀va亚洲va欧美va天堂| 久久成人亚洲| 欧美三级电影大全| 亚洲国产精品久久久久秋霞不卡 | 久久国产精品久久国产精品| 欧美福利视频在线观看| 久久久久久久久久久久久久一区| 欧美日韩三级一区二区| 亚洲电影免费| 亚洲激情视频在线| 久久综合九色综合欧美就去吻| 欧美在线视频网站| 午夜精品亚洲| 欧美丝袜一区二区| 亚洲国产精品va在看黑人| 国产综合色在线| 亚洲一区二区三区四区五区黄| 欧美一区二区日韩| 亚洲性感激情| 欧美日韩亚洲不卡| 亚洲精品在线观| 99re66热这里只有精品4| 鲁鲁狠狠狠7777一区二区| 久久人人97超碰人人澡爱香蕉| 国产精品你懂的在线| 一本色道久久| 亚洲欧美国产精品va在线观看| 欧美日韩一二三区| 中文久久精品| 午夜久久久久| 国产伦精品一区二区三区在线观看| 宅男噜噜噜66一区二区| 在线视频欧美日韩精品| 欧美日韩国产区一| 日韩亚洲欧美精品| 午夜精品久久| 国产欧美日韩| 久久国产主播精品| 久久中文字幕导航| 136国产福利精品导航网址应用| 欧美综合第一页| 美女主播一区| 亚洲人成网站在线播| 欧美久久久久免费| 中文精品在线| 久久久一本精品99久久精品66| 国产在线不卡视频| 免费久久99精品国产| 亚洲欧洲一区二区在线播放| 一级日韩一区在线观看| 国产精品夜夜夜| 久久久视频精品| 亚洲黄色尤物视频| 亚洲欧美一区二区精品久久久| 国产婷婷成人久久av免费高清 | 亚洲欧洲一区二区在线观看| 亚洲一区二区三区激情| 国产精自产拍久久久久久蜜| 久久久久高清| 日韩一区二区精品视频| 欧美在线影院| 亚洲精品国产精品国自产观看| 欧美性猛交视频| 久久精品国产99国产精品| 亚洲激情影视| 久久久久久久999精品视频| 日韩视频在线一区二区三区| 国产精品美女久久久| 久热re这里精品视频在线6| 日韩午夜精品| 乱中年女人伦av一区二区| 亚洲调教视频在线观看| 国产亚洲欧美一级| 欧美日韩国产精品专区| 久久精品91久久久久久再现| 日韩视频在线播放| 美腿丝袜亚洲色图| 国一区二区在线观看| 亚洲精品永久免费精品| 久久久久国色av免费看影院| a91a精品视频在线观看| 国内精品99| 国产精品久久久久aaaa九色| 美女黄网久久| 久久av资源网站| 亚洲一区一卡| 日韩图片一区| 亚洲国产女人aaa毛片在线| 久久国产直播| 亚洲欧美激情视频| 日韩视频在线一区| 亚洲国产精品热久久| 国产农村妇女精品一区二区| 欧美日韩国产一区精品一区 | 免费看黄裸体一级大秀欧美| 欧美一区二区三区另类| 亚洲天天影视| 亚洲人成在线播放| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲一区二区在线| 99国产精品视频免费观看一公开| 欧美大片在线观看一区| 久久亚洲不卡| 麻豆成人av| 久久视频在线免费观看| 久久xxxx| 久久精品视频网| 久久国产欧美精品| 欧美在线免费观看| 久久成年人视频| 久久久99精品免费观看不卡| 欧美一区二区在线免费观看| 亚洲欧美在线x视频| 亚洲欧美国产日韩天堂区| 亚洲图片在线| 亚洲欧美成人| 欧美中在线观看| 久久噜噜噜精品国产亚洲综合| 久久久久99精品国产片| 久久三级福利| 欧美~级网站不卡| 亚洲第一页在线| 亚洲精品国偷自产在线99热| 亚洲精品一区二区三区不| 亚洲伦理精品| 亚洲在线中文字幕| 欧美在线播放高清精品| 久久亚洲一区二区| 欧美国产成人在线| 欧美视频在线观看| 国产麻豆9l精品三级站| 伊人久久大香线| 99视频精品免费观看| 亚洲欧美精品一区|