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

[3D基礎(chǔ)]理解計算機3D圖形學中的坐標系變換

轉(zhuǎn)載文章一:http://www.cnblogs.com/shanhaobo/articles/1065380.html

[3D基礎(chǔ)]理解計算機3D圖形學中的坐標系變換

     要談坐標系變換,那么坐標系有哪些呢?依次有:物體坐標系,世界坐標系,相機坐標系,投影坐標系以及屏幕坐標系.我要討論的就是這些坐標系間的轉(zhuǎn)換。
     這些坐標系不是憑空而來,他們都是為了完成計算機3D圖形學最最最基本的目標而出現(xiàn).
      計算機3D圖形學最最最基本的目標就是:將構(gòu)建好的3D物體顯示在2D屏幕坐標上.
      初看好像就是將最初的物體坐標系轉(zhuǎn)換到屏幕坐標系就可以了呀,為什么多出了世界坐標系,相機坐標系,投影坐標 系。這是因為:在一個大世界里有多個物體,而每個物體都有自己的坐標系,如何表述這些物體間相對的關(guān)系,這個多出了世界坐標系;如果只需要看到這個世界其 中一部分,這里就多出了相機坐標系;至于投影坐標系那是因為直接將3D坐標轉(zhuǎn)換為屏幕坐標是非常復(fù)雜的(因為它們不僅維度不同,度量不同(屏幕坐標一般都 是像素為單位,3D空間中我們可以現(xiàn)實世界的米,厘米為單位),XY的方向也不同,在2D空間時還要進行坐標系變換),所以先將3D坐標降維到2D坐標, 然后2D坐標轉(zhuǎn)換到屏幕坐標。
理解3D圖形學的第一步:理解左手坐標系與右手坐標系
      為什么會有左手坐標系與右手坐標系之分?
      在3D空間(沒錯!就是3D)中,所有2D坐標系是等價的(就是通過一系列的仿射變換,可以互相轉(zhuǎn)換)
      而3D坐標系不是等價的,通過仿射變換,是無法將左手坐標系轉(zhuǎn)換到右手坐標系;也就是說,物體坐標系用的就是左手坐標系,世界坐標系用的是右手 坐標系,那么物體可能就是不會是我們所希望的樣子了,可能是倒立的,也可能是背對著我們的,所以我們要區(qū)分左手坐標系與右手坐標系。也許在4D空間,左右 手坐標系就可以互相變換了吧。
      進入正題吧:
     首先討論的是物體坐標系->世界坐標系
      前面說了為了描述多個物體間相對的關(guān)系,這里引進了世界坐標系,所以世界坐標系是個參考坐標系。
      這一步的目的將所有的物體的點都轉(zhuǎn)移到世界坐標系,這里主要涉及的是旋轉(zhuǎn),縮放,平移等。
      不過我將詳細說明為何及如何用矩陣來描述這些變換。
      例:如果有兩個坐標系C與C`, C`是C繞Z軸旋轉(zhuǎn)θ得到的。下面是各坐標軸的變換:
             
     如果是C坐標系的點P(x, y, z),而在C`的表示就是
   
     這時該如何建立矩陣呢? 答案就是區(qū)分你用的是行向量還是列向量.也許有人會問為什么不區(qū)分是左手坐標系還是右手坐標系呢?因為C可以變換到C`,那么他們一定是同在左手坐標系或右手坐標系,變換只能在可以互相轉(zhuǎn)換的坐標系之間進行。
      如果你用的是行向量:由于行向量只能左乘矩陣(注意乘與乘以的區(qū)別)
      所以矩陣形式應(yīng)該是這樣
    
     只有這樣,在左乘矩陣時才能得到上面P`的形式。
    
     如果你用的是列向量: 由于列向量只能右乘矩陣(注意乘與乘以的區(qū)別)
     所以矩陣形式應(yīng)該是這樣
    
     只有這樣,在右乘矩陣時才能得到上面P`的形式。
  
     至于如何旋轉(zhuǎn),縮放,平移我不在多說。
     …………………………………覺得自己好像跑題了.還好這兩個坐標系變換很簡單。
     我們再討論世界坐標系->相機坐標系
     引進相機的目的就是只需看到世界的一部分,而哪些是可以在相機里看到的,就需要進行篩選。將物體轉(zhuǎn)換到相機坐標系,這樣相機坐標系進行篩選時就會簡單很多。這里的重點是構(gòu)建相機坐標系。
     物體坐標系,世界坐標系是美工在繪制時就定義好了的。而相機坐標系是需要程序?qū)崟r構(gòu)建的。(當然這是通常情況下,如果你要建立一個世界,這個世界都是圍繞 你轉(zhuǎn),要實時改變所有物體坐標系,固定相機坐標系(其實這時候相機坐標系就是世界坐標系),建立一個地心說的世界,我也沒辦法,你的思維也太不一樣了。)
     如何構(gòu)建相機坐標系呢?首先我們要明確目標:我們是要構(gòu)建3D坐標系(好像是廢話),三個坐標軸要互相垂直(也好像是廢話).
      我們一般用UVN相機。例如:D3D的D3DXMatrixLookAtLH,D3DXMatrixLookAtRH,OGL的gluLookAt(右手坐標系).
      如何建立呢UVN相機呢? 我們就要利用叉積這個工具了:兩個不平行,不重疊的向量的叉積可以得到與這兩個向量互相垂直的向量。
      如果有了相機的位置與目標的位置那么我們可以確定一個Z軸(有人問為什么是Z軸,因為物體的遠與近我們就習慣用Z值來表示的)。求Z軸時要注意 是左手坐標系還是右手坐標系,左右手坐標系XY軸方向相同時,Z軸的方向相反。所以左手坐標系是目標位置減去相機位置,而右手坐標系則是相機位置減去目標 位置。記得normalize
     這是我們要得到X與Y軸了。如何求X,Y軸呢?
     一般方法是:
     1、選擇一個臨時Y軸,
     2、對臨時Y 與Z 軸進行叉積求得一個X軸
     3、X軸再與Z軸進行叉積,得到一個Y軸。
     有了XYZ就可以求出旋轉(zhuǎn)的相機矩陣了。
     如何選擇一個Y軸呢?大多數(shù)情況下是(0,1,0),但是如果是相機位置E與目標位置T垂直,即(E-T=(0,+/-1,0)時),這時就不能用(0,1,0)了, 因為兩個平行向量的叉積是零向量,所以我們就要另選一個Y軸。
     但是我覺得我們可以改變方法。
      如果不能選Y軸,我們就選擇一個臨時X軸,這個臨時X軸就是(1,0,0)。
     然后再對臨時X軸與Z軸進行叉積求得一個Y軸。
     最后Y軸再與Z軸進行叉積,得到X軸。
      這樣可以得到XYZ軸。
      最后再根據(jù)行向量與列向量建立相機矩陣,再進行平移。

     相機坐標系->投影坐標系.
     投影的目的就是:降維.
      兩種投影方式:正交投影與透視投影.
      在我們TEAM中易穎已經(jīng)寫了,我就不多說了,大家去看他的文章。

     投影坐標系->屏幕坐標系
      這是最簡單的。2D坐標變換。也不多說。

轉(zhuǎn)載文章2:http://www.xingousi.com/computer/computergraphics.htm

計算機圖形學筆記(Part 1 ):計算機圖形學透視投影變換原理及一點和兩點透視

 

一、平行互分法

吳英凡所寫的《透視作圖的新方法——交點法體系》,其中談到的平行互分法,還是有道理的。

其實簡單點說,就是透視圖上的兩條“原來空間中的平行線”(在畫面上透視投影為相交于滅點),通過其中一條透視投影直線的端點畫另一條透視投影直線的平行線,必平行于畫面;這第三條線在畫面的透視投影的滅點必然在另一條透視投影線上。

 

 

 

二、透視投影變換學習總結(jié)

1、用多維數(shù)列表示低維空間坐標,加深理解齊次坐標表示法。

    齊次坐標表示法可以方便地運算,同時形狀不變。[x,y,z,0]表示一個無窮的點。

   

2、透視投影變換公式可以看成兩個矩陣的乘積,其中一個做透視變換,另外一個作正投影

   保留的z'值的確切含義:指的是在完全作完透視投影變換之前,僅作透視投影之后的一條線.

   它的幾何意義見李建平《計算機圖形學原理教程》第44頁。

3、左手和右手坐標系的坐標轉(zhuǎn)換

   “視點坐標系與一般的物體所在的世界坐標系不同,它遵循左手法則,即左手大拇指指向Z正軸,與之垂直的四個手指指向X正軸,四指彎曲90度的方向是Y正軸。而世界坐標系遵循右手法則的。”

4、視點坐標系的透視變換公式很重要!!王飛著計算機圖形學書65

5z'值的確切含義:指的是在完全作完透視投影變換之前,僅作透視投影之后的一條線

 

 

 

三、兩點透視的變換矩陣:

王飛編著《計算機圖形學基礎(chǔ)》的道理是:

從平面圖形的平移、旋轉(zhuǎn)、錯切開始推導(dǎo),兩點透視的變換矩陣可以看成是:

物體本身有一個物體坐標系——xw,yw,zw,視點作為原點又構(gòu)成一個視點坐標系——xeyeze,物體坐標系z軸朝上,y軸朝向遠處;而視點坐標系y軸朝上,z軸朝向遠處。

這樣,最終的二點透視狀態(tài)可以這樣取得,首先把物體的位置的物體坐標系表示法轉(zhuǎn)化為視點坐標系的表示法(第一個矩陣),然后圍繞視點坐標系的y軸旋轉(zhuǎn)(第二個矩陣),然后在xyz方向上平移(第三個矩陣),最后做透視變換(第四個矩陣),它的原文是把平移放在第二步,我在平移之前轉(zhuǎn)動,目的是保證了物體旋轉(zhuǎn)的軸在離它不遠的地方:

我使用的矩陣變換如下,原文是是把平移放在第二步:

[xw,yw,zw,1]* ***

 

最后所得結(jié)果是一個新的矩陣,

[xe ye ze 1]=[cos*xw-sin*yw+l   zw+m   2sin*xw+2cos*yw+2n-d   (sin*xw+cos*yw+n/d]

把最后一項變成1,可得

=[(cos*xw-sin*yw+l)*d/(sin*xw+cos*yw+n   (zw+m)*d/(sin*xw+cos*yw+n)   2sin*xw+2cos*yw+2n-d*d/(sin*xw+cos*yw+n)    1 ]


即:

Xe= (cos*xw-sin*yw+l)*d/(sin*xw+cos*yw+n)

Ye=(zw+m)*d/(sin*xw+cos*yw+n)

Ze=(2sin*xw+2cos*yw+2*n-d)*d/(sin*xw+cos*yw+n)

 

實際上我的delphi程序里面是這樣的:

xe:=trunc((cos(angle)*eee[ii][k].X-sin(angle)*eee[ii][k].Y+l)*d/(sin(angle)*eee[ii][k].X+cos(angle)*eee[ii][k].Y+n));

        ye:=trunc((hhh[ii][k]+m)*d/(sin(angle)*eee[ii][k].X+cos(angle)*eee[ii][k].Y+n)); //透視變換

        //ze可以考慮使用作為消隱

Ze:=trunc((2*sin(angle)*xw+2*cos(angle)*yw+2*n-d)*d/(sin(angle)*xw+cos(angle)*yw+n));

 

 

四、通過變換過的兩點透視的結(jié)果xe,yezw*,反求原來的物體坐標xw,yw

即:xe,yezw已知,求出xw,yw

根據(jù):

Xe= (cos*xw-sin*yw+l)*d/(sin*xw+cos*yw+n)          1

Ye=(zw+m)*d/(sin*xw+cos*yw+n)                         2

Ze=2sin*xw+2cos*yw+2n-d*d/(sin*xw+cos*yw+n) 3

1)除以(2)得

Xe/Ye= (cos*xw-sin*yw+l)/ (zw+m)

(Xe*(zw+m))/Ye=cos*xw-sin*yw+l

(Xe*(zw+m))/(Ye* cos)=xw-tan*yw+l/cos

Xw=(Xe*(zw+m))/ (Ye* cos) - (ye*l)/(Ye* cos)+( sin*yw*ye)/ (Ye* cos)

 

Xw=(Xe*(zw+m)+ sin*yw*ye- ye*l)/ (Ye* cos)            (4)

 

由(2)得

Ye*(sin*xw+cos*yw+n)= (zw+m)*d

Ye*(sin*xw)+ye* cos*yw+n*ye=(zw+m)*d

把(4)代入上式得

Ye* sin*(Xe*(zw+m)+ sin*yw*ye- ye*l)/ (Ye* cos)+ye* cos*yw+n*ye=(zw+m)*d

約去ye,得

sin*(Xe*(zw+m)+ sin*yw*ye- ye*l)/ cos+ye* cos*yw+n*ye=(zw+m)*d

tan*(Xe*zw+xe*m+ sin*yw*ye- ye*l) +ye* cos*yw+n*ye=(zw+m)*d

tan*Xe*zw+xe*m *tan- ye*l*tan+ sin*tan*yw*ye+ye* cos*yw+n*ye=(zw+m)*d

(sin*tan*ye+ye* cos)*yw+ tan*Xe*zw+xe*m *tan- ye*l*tan+n*ye=(zw+m)*d

 

最后得

Yw=[(zw+m)*d- tan*Xe*zw- xe*m *tan+ ye*l*tan- n*ye]/ (sin*tan*ye+ye* cos) 5

而前面已經(jīng)得到

Xw=(Xe*(zw+m)+ sin*yw*ye- ye*l)/ (Ye* cos)            (4)

 

實際上相當于opengl里面的逆變換,從鼠標選中的屏幕位置來確定對應(yīng)的三維空間中位置,opengl使用gluUnProjectgluUnProject4來計算。

posted on 2010-12-06 14:19 wrh 閱讀(1295) 評論(0)  編輯 收藏 引用


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


導(dǎo)航

<2010年7月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

統(tǒng)計

常用鏈接

留言簿(19)

隨筆檔案

文章檔案

收藏夾

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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| 国产精品稀缺呦系列在线| 欧美精品一线| 欧美国产精品劲爆| 欧美日韩亚洲一区二区三区在线 | 国产日产欧产精品推荐色| 欧美三区在线视频| 欧美日韩国产经典色站一区二区三区| 欧美国产免费| 国产精品xvideos88| 国产精品色一区二区三区| 国产亚洲女人久久久久毛片| 国产一区二区三区在线观看视频| 狠狠干成人综合网| 亚洲美女免费精品视频在线观看| 这里只有视频精品| 欧美中文在线字幕| 欧美激情一区二区三区在线视频 | 亚洲少妇自拍| 午夜精品久久久久| 免费日韩一区二区| 欧美日韩中文字幕| 国产精品一区二区你懂的| 亚洲大片av| 午夜精品久久久久久久男人的天堂| 久久亚洲国产精品日日av夜夜| 亚洲精品久久久久久久久| 久久成人精品视频| 欧美色区777第一页| 狠狠入ady亚洲精品经典电影| 亚洲一区二区在线视频| 亚洲日本一区二区| 欧美亚洲一区二区在线| 亚洲高清资源| 性色av一区二区三区红粉影视| 欧美成人精品一区二区三区| 国产精品网站一区| 亚洲青涩在线| 另类天堂av| 午夜精品成人在线视频| 欧美三级在线| 亚洲欧洲综合另类| 开心色5月久久精品| 亚洲一区999| 欧美激情中文不卡| 影音先锋亚洲一区| 久久久久青草大香线综合精品| 999亚洲国产精| 欧美二区在线观看| …久久精品99久久香蕉国产| 久久成人人人人精品欧| 一区二区三区成人| 欧美激情中文字幕乱码免费| 欧美激情网友自拍| 亚洲第一精品久久忘忧草社区| 香蕉久久夜色精品国产| 亚洲另类春色国产| 欧美福利视频在线观看| 亚洲精品久久久久久久久| 欧美**字幕| 久久精品欧美| 红桃视频欧美| 免费成人黄色av| 久久成人精品一区二区三区| 国内精品伊人久久久久av一坑| 欧美在线啊v| 欧美一区综合| 激情成人综合| 亚洲电影免费观看高清完整版在线| 久久夜色精品亚洲噜噜国产mv| 伊人久久噜噜噜躁狠狠躁 | 亚洲国产精品成人精品| 蜜桃av一区二区| 老司机午夜免费精品视频| 亚洲黄色成人网| 亚洲精品少妇| 国产精品激情| 久久av资源网| 久久久天天操| 亚洲伦伦在线| 亚洲一区二区精品在线| 国产一区二区三区网站| 欧美韩国在线| 国产精品福利影院| 久久久久久亚洲综合影院红桃| 久久久久国产精品人| 亚洲日本欧美在线| 亚洲男人第一av网站| 伊大人香蕉综合8在线视| 久久蜜桃资源一区二区老牛| 国产视频亚洲精品| 欧美电影在线播放| 欧美色网一区二区| 欧美一区二区三区啪啪| 久久一综合视频| 亚洲一区二区三区精品视频| 香蕉久久夜色精品| 日韩小视频在线观看| 亚洲欧美资源在线| 夜夜嗨av色综合久久久综合网| 午夜国产精品视频免费体验区| 亚洲精品一区二区三区在线观看| 亚洲尤物精选| 日韩亚洲欧美综合| 久久精品亚洲一区二区| 亚洲欧美激情一区| 欧美电影免费观看高清完整版| 亚洲欧美日韩国产一区| 欧美成人精品1314www| 久久激情视频| 国产精品黄页免费高清在线观看| 亚洲高清视频的网址| 国产一区二区三区自拍| 一区二区日韩精品| 亚洲人成小说网站色在线| 午夜宅男久久久| 亚洲免费一在线| 欧美精品啪啪| 亚洲国产精品va在线看黑人| 黄色日韩在线| 欧美亚洲自偷自偷| 欧美一级专区免费大片| 欧美视频在线视频| 亚洲精品乱码视频| 亚洲卡通欧美制服中文| 美腿丝袜亚洲色图| 米奇777在线欧美播放| 国产在线高清精品| 欧美影院在线播放| 久久国产精品99精品国产| 国产精品护士白丝一区av| 亚洲精品在线免费观看视频| 亚洲激情视频网| 久热精品在线视频| 免费在线看一区| 在线日韩成人| 久久亚洲春色中文字幕| 免费在线亚洲| 亚洲人午夜精品| 欧美理论电影网| 亚洲美女精品一区| 日韩一区二区免费看| 欧美人妖在线观看| 99精品视频网| 欧美伊人久久久久久久久影院| 国产裸体写真av一区二区| 午夜精品久久| 噜噜爱69成人精品| 亚洲欧洲精品一区二区三区 | 国产欧美日韩综合一区在线观看 | 亚洲激情校园春色| 美女福利精品视频| 亚洲欧洲一二三| 亚洲日本中文字幕| 久久久精品999| 国产精品久久久久一区| 亚洲婷婷国产精品电影人久久| 亚洲视频免费看| 国产精品丝袜白浆摸在线| 性欧美在线看片a免费观看| 久久一二三国产| 亚洲精品视频免费观看| 欧美视频成人| 欧美亚洲在线播放| 亚洲成人在线视频播放 | 久久频这里精品99香蕉| 亚洲国产精品视频一区| 亚洲欧美日本精品| 精品999网站| 欧美日韩国产精品| 久久9热精品视频| 亚洲人成绝费网站色www| 欧美一区二区精品| 亚洲国产欧美一区二区三区同亚洲 | 一本久久精品一区二区| 国产精品久久久久7777婷婷| 久久国产成人| 99re热这里只有精品视频| 久久久久国色av免费看影院| 亚洲日本乱码在线观看| 国产欧美精品一区aⅴ影院| 米奇777在线欧美播放| 亚洲免费在线看| 亚洲三级影片| 久久天堂精品| 亚洲主播在线观看| 亚洲日本va午夜在线影院| 国产小视频国产精品| 欧美破处大片在线视频| 欧美在线三区| 一本一本久久| 最新亚洲一区| 免费一级欧美在线大片| 欧美在线播放一区二区| 亚洲在线视频| 一区二区三区你懂的| 亚洲级视频在线观看免费1级| 国产视频精品va久久久久久| 欧美午夜电影完整版|