三維變換與投影

三維幾何的矩陣變換:


三維幾何的矩陣變換.png

平移變換:


平移變換.png

比例變換:


比例變換.png

繞X軸旋轉(zhuǎn):


繞X軸旋轉(zhuǎn).png

繞Y軸旋轉(zhuǎn):


繞Y軸旋轉(zhuǎn).png

繞Z軸旋轉(zhuǎn):


繞Z軸旋轉(zhuǎn).png

X軸反射變換:


X軸反射變換.png

Y軸反射變換:


Y軸反射變換.png

Z軸反射變換:


Z軸反射變換.png

關(guān)于xoy面的反射:


關(guān)于xoy面的反射.png

關(guān)于xoz面的反射:


關(guān)于xoz面的反射.png

關(guān)于yoz面的反射:


關(guān)于yoz面的反射.png

錯切變換/剪切變換(shear transform)


錯切變換.png

沿X方向的錯切:


沿X方向的錯切.png

沿Y方向的錯切:


沿Y方向的錯切.png

沿Z方向的錯切:


沿Z方向的錯切.png

三維復(fù)合變換:
T為復(fù)合變換矩陣嗎畅铭,T1母债、T2 … Tn 為n個單次基本幾何變換的變換矩陣


三維復(fù)合變換.png

相對于任一參考點(diǎn)的三維幾何變換
在三維基本幾何變換中,比例變換和旋轉(zhuǎn)變換是與參考點(diǎn)相關(guān)的祷蝌。相對于任一參考點(diǎn)Q(x, y, z) 的比例變換和旋轉(zhuǎn)變換應(yīng)表達(dá)為復(fù)合變換形式次伶。變換方法是首先將參考點(diǎn)平移到坐標(biāo)原點(diǎn)痴昧,相對于坐標(biāo)原點(diǎn)作比例變換或旋轉(zhuǎn)變換,然后再進(jìn)行反平移將參考點(diǎn)平移回原來的位置冠王。

相對于任意方向的三維幾何變換
相對于任一方向的變換方法是首先對任意方向做旋轉(zhuǎn)變換赶撰,使變換方向與某個坐標(biāo)軸重合,然后對該坐標(biāo)軸進(jìn)行三維基本幾何變換柱彻,最后最反向旋轉(zhuǎn)變換豪娜,將任意方向還原到原來的方向。三維幾何變換中需要進(jìn)行兩次旋轉(zhuǎn)變換哟楷,才能使任意方向與某個坐標(biāo)軸重合瘤载。一般做法是先將任意方向旋轉(zhuǎn)到某個坐標(biāo)平面內(nèi),然后再旋轉(zhuǎn)到與該坐標(biāo)平面內(nèi)的某個坐標(biāo)軸重合卖擅。

坐標(biāo)系變換
在進(jìn)行三維觀察時鸣奔,需要將物體的描述從世界坐標(biāo)系變換到觀察坐標(biāo)系,然后通過旋轉(zhuǎn)視點(diǎn)可以觀察物體的全貌惩阶。
同一種變換既可以看做是點(diǎn)變換也可以看做是坐標(biāo)系變換挎狸。點(diǎn)變換是頂點(diǎn)位置發(fā)生改變,但坐標(biāo)系位置不發(fā)生改變琳猫。坐標(biāo)系變換是建立新坐標(biāo)系描述舊坐標(biāo)系內(nèi)的頂點(diǎn)伟叛,坐標(biāo)系位置發(fā)生改變,但頂點(diǎn)位置不發(fā)生改變脐嫂。

二維平移變換矩陣


二維平移變換矩陣.png

坐標(biāo)系的旋轉(zhuǎn)變換统刮,應(yīng)使用相反方向的旋轉(zhuǎn)變換矩陣。如繞Z軸的逆時針變換账千,應(yīng)使用順時針旋轉(zhuǎn)變換矩陣侥蒙,反之亦然。


繞Z軸的逆時針變換.png

三維坐標(biāo)系變換
平移變換矩陣


三維平移變換矩陣.png

相對于點(diǎn)變換而言匀奏,坐標(biāo)系變換的平移參數(shù)需要取為負(fù)值鞭衩。
同二維坐標(biāo)系的旋轉(zhuǎn)變換類似,三維坐標(biāo)系的旋轉(zhuǎn)變換矩陣應(yīng)使用點(diǎn)變換的反向旋轉(zhuǎn)變換矩陣表示。

繞X軸的逆時針三維旋轉(zhuǎn)變換矩陣為:


繞X軸的逆時針三維旋轉(zhuǎn)變換矩陣.png

繞Y軸逆時針三維旋轉(zhuǎn)變換矩陣為:


繞Y軸逆時針三維旋轉(zhuǎn)變換矩陣.png

繞Z軸的逆時針三維旋轉(zhuǎn)變換矩陣為:


繞Z軸的逆時針三維旋轉(zhuǎn)變換矩陣.png

β 為順時針旋轉(zhuǎn)角

坐標(biāo)系的三維反射變換论衍,直接采用點(diǎn)變換的反射變換矩陣瑞佩。

投影變換分類


投影變換分類.png

平行投影
由于顯示器只能用二維圖像表示三維物體,因此三維土體就要靠投影來降低維數(shù)得到二維平面圖形坯台,因此把三維坐標(biāo)轉(zhuǎn)變?yōu)槎S坐標(biāo)的過程稱為投影變換炬丸。
根據(jù)投影中心與投影面之間的距離不同,投影可分為平行投影和透視投影蜒蕾。投影中心到投影面的距離為無限大時得到的投影稱為平行投影稠炬,而對于透視投影,這個距離是有限的咪啡。平行投影又可分為斜投影和正交都應(yīng)首启。投影方向不垂直與投影面的平行投影稱為斜投影,投影方向垂直于投影面的平行投影稱為正交投影撤摸。正交投影的最大特點(diǎn)是無論物體距離視點(diǎn)(眼睛或相機(jī))多遠(yuǎn)毅桃,投影后的物體尺寸保持不變,常用于繪制物體的三視圖愁溜。

正交投影變換


正交投影變換.png

正交投影為


正交投影.png

三視圖
一個物體有6個視圖:從物體的前面向后面投射所得的視圖稱主視圖疾嗅,從物體的上面向下面投射所得的視圖稱俯視圖,從物體的左面向右面投射所得的視圖稱側(cè)視圖冕象,還有其它三個視圖不是很常用代承。

主視圖


主視圖變換.png

俯視圖:


俯視圖變換.png

側(cè)視圖:


側(cè)視圖變換.png

斜投影
將三維物體向投影面內(nèi)作平行投影,但投影方向不垂直于投影面得到的投影稱為斜投影渐扮。與正交投影相比论悴,斜投影具有較好的立體感。斜投影也具有部分類似正交投影的可測量性墓律,平行于投影面的物體表面的長度和角度投影后保持不變膀估。


斜投影原理.png
斜投影變換公式.png

取b = 45度,當(dāng)cota = 1 時耻讽,即投影方向與投影面成 45 度夾角時察纯,得到的斜投影圖為斜等測圖。這時针肥,垂直于投影面的任何直線段的投影長度保持不變饼记。此時有:


變換公式.png

取b = 45 度,當(dāng)cota = 1/2 時慰枕,有a 約等于63.4度具则,得到的斜投影圖為斜二測圖,這時垂直于投影面的任何直線的投影長度為原來的一般具帮。此時有:


變換公式.png

透視投影
與平行投影相比博肋,透視投影的特點(diǎn)是所有投影線都從空間一點(diǎn)(稱為視點(diǎn)或投影中心)投射低斋,離視點(diǎn)近的物體投影大,離視點(diǎn)元的物體投影小匪凡,小到極點(diǎn)消失膊畴,稱為滅點(diǎn)(vanishing point)。一般將屏幕放下觀察者與物體之間病游。投影線與屏幕的交點(diǎn)就是物體上一點(diǎn)的透視投影巴比。視點(diǎn)代表人眼或相機(jī)、攝像機(jī)的位置礁遵,是觀察坐標(biāo)系的原點(diǎn)。視心是屏幕坐標(biāo)系的原點(diǎn)采记。

透視變換坐標(biāo)系
透視投影變換中佣耐,物體中西位于世界坐標(biāo)系OwXwYwZw的原點(diǎn)Ow,視點(diǎn)位于觀察坐標(biāo)系OvXvYvZv的原點(diǎn)Ov(a, b, c)唧龄,投影中心位于屏幕坐標(biāo)系OsXsYsZs的原點(diǎn)Os兼砖。


透視變換坐標(biāo)系.png

世界坐標(biāo)系
世界坐標(biāo)系OwXwYwZw,采用右手直角坐標(biāo)系既棺。視點(diǎn)的直角坐標(biāo)為Ov(a, b, c)讽挟。OwOv的長度為視徑R,視點(diǎn)的球面坐標(biāo)表示為Ov(R, θ, φ)丸冕,其中θ 為OwM 與Z軸的夾角耽梅,φ為OwOv與Y軸的夾角。視點(diǎn)的球面坐標(biāo)和直角坐標(biāo)的關(guān)系為:


視點(diǎn)球面坐標(biāo)和直角坐標(biāo)系關(guān)系.png

觀察坐標(biāo)系
OvXvYvZv為左手直角坐標(biāo)系胖烛,坐標(biāo)原點(diǎn)取在視點(diǎn)Ov上眼姐。Zv軸沿著視線方向OvOw指向Ow點(diǎn),視線的正右方向?yàn)閄v軸佩番,視線的正上方為Yv軸众旗。

屏幕坐標(biāo)
屏幕坐標(biāo)OsXsYsZs也是左手直角坐標(biāo)系,坐標(biāo)原點(diǎn)Os位于視心趟畏。屏幕坐標(biāo)系的Xs 和Ys 軸與觀察坐標(biāo)系的Xv軸和Yv軸方向一致贡歧,屏幕垂直于視線,Zs軸自然與Zv軸重合赋秀。
世界坐標(biāo)系到觀察坐標(biāo)系的變換
首先將世界坐標(biāo)系的原點(diǎn)Ow 平移到觀察坐標(biāo)系的原點(diǎn)Ov利朵,然后將世界右手坐標(biāo)系變換為觀察左手坐標(biāo)系,就可以視線從世界坐標(biāo)系到觀察坐標(biāo)系的變換沃琅。
觀察變換矩陣為:


觀察變換矩陣.png

展開式為:


觀察變換矩陣展開式.png

為了避免程序中重復(fù)計(jì)算式中的三角函數(shù)耗費(fèi)時間哗咆,三角函數(shù)可以使用常數(shù)代替

改變φ,視點(diǎn)就會沿著緯度方向旋轉(zhuǎn)益眉,改變θ晌柬,視點(diǎn)就會沿著經(jīng)度方向旋轉(zhuǎn)姥份,增大視徑R,則視點(diǎn)到物體的距離變遠(yuǎn)年碘,物體的投影縮谐呵浮;減小視徑R屿衅,視點(diǎn)到物體的距離變近埃难,物體的投影放大。觀察坐標(biāo)系只是提供了一種從任意視向觀察物體的方法涤久。

觀察坐標(biāo)到屏幕坐標(biāo)系的變換
屏幕坐標(biāo)系為左手系涡尘,且Zs軸與Zv同向。視點(diǎn)Ov 與視心Os的距離為視距離d响迂。嘉定觀察坐標(biāo)系中物體上的一點(diǎn)為Pv(Xv, Yv, Zv)考抄,視線OvPv與屏幕的交點(diǎn)在觀察坐標(biāo)系中表示Ps(Xs, Ys, 0)代表物體上的Pv點(diǎn)在屏幕上的透視投影。


觀察坐標(biāo)到屏幕坐標(biāo)系的變換.png

由點(diǎn)Pv想XvOvZv平面內(nèi)作垂直教育N點(diǎn)蔗彤,再由N點(diǎn)想Zv軸做垂線教育Q點(diǎn)川梅。連接OvN交Xs軸于M點(diǎn)。
根據(jù)Rt△MOvOs 于Rt△MOvQ相似然遏,有


相似公式.png

根據(jù)Rt△PsOvM 于Rt△PvOvN相似贫途,有


相似公式.png

由此得到:
相似公式.png

寫成坐標(biāo)形式:
image.png

image.png

于是可得:


image.png

透視變換矩陣為:


透視變換矩陣.png

透視投影整體變換為:


透視投影整體變換.png

透視投影分類
透視投影中,與屏幕平行的平行線投影后保持平行待侵。不予屏幕平行的平行線投影后匯聚為滅點(diǎn)丢早,滅點(diǎn)是無限遠(yuǎn)點(diǎn)再屏幕上的投影。每一組平行線都有其不同的滅點(diǎn)诫给。坐標(biāo)軸上滅點(diǎn)稱為主滅點(diǎn)香拉。
透視投影中主滅點(diǎn)數(shù)目是由屏幕切割坐標(biāo)軸的數(shù)量來決定,并據(jù)此將透視投影分類為一點(diǎn)中狂、兩點(diǎn)凫碌、三點(diǎn)透視。一點(diǎn)透視有一個主滅點(diǎn)胃榕,即屏幕僅與一個坐標(biāo)軸正交盛险,與另外兩個坐標(biāo)軸平行,二點(diǎn)透視有兩個主滅點(diǎn)勋又,即屏幕僅與兩個坐標(biāo)軸相交苦掘,與另一個坐標(biāo)軸平行。三點(diǎn)透視有三個主滅點(diǎn)楔壤,即屏幕與三個坐標(biāo)軸都相交

計(jì)算透視投影的深度坐標(biāo)
對于透視投影鹤啡,場景中所有投影均位于以視點(diǎn)為頂點(diǎn),連接視點(diǎn)與屏幕死角點(diǎn)為棱邊的沒有底面的四棱錐內(nèi)蹲嚣。當(dāng)屏幕離視點(diǎn)太近或太遠(yuǎn)時递瑰,物體因此變得太大或太小而不可識別祟牲。定義視域四棱錐的Z向近剪切面和遠(yuǎn)剪切面分別為Near 和 Far,經(jīng)Zv 向裁剪后的視域四棱錐轉(zhuǎn)化為四棱臺抖部。


計(jì)算透視投影的深度坐標(biāo).png

物體在屏幕坐標(biāo)系中的深度計(jì)算公式為:


深度計(jì)算公式.png

其中Near 和Far是常數(shù)说贝,且Near就是視距d。透視變換的一個重要性質(zhì)是把直線映射為直線慎颗,平面映射為平面乡恕。


坐標(biāo)系相對關(guān)系圖.png

三維物體的動畫主要使用三維幾何變換來完成。透視投影是繪制真是感圖形的基礎(chǔ)俯萎,透視投影是在觀察坐標(biāo)系內(nèi)實(shí)施的傲宜。物體的旋轉(zhuǎn)通話可以使用兩種方法生成,一種是物體不動夫啊,視點(diǎn)旋轉(zhuǎn)蛋哭,稱為視圖變換。另一張方法是物體旋轉(zhuǎn)涮母,視點(diǎn)不動,稱為模型變換躁愿。真實(shí)感光照場景中叛本,由于世界坐標(biāo)系中設(shè)置了光源的位置,物體的旋轉(zhuǎn)主要采用的是模型變換方式彤钟,此時視點(diǎn)和光源位置不變来候,物體旋轉(zhuǎn)生成動畫。

視點(diǎn)逸雹、屏幕和物體的位置關(guān)系有三種营搅,屏幕位于物體和視點(diǎn)之間,物體位于屏幕和視點(diǎn)之間梆砸,視點(diǎn)位于屏幕和物體之間转质。視點(diǎn)位于屏幕和物體之間會使得圖像倒置。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帖世,一起剝皮案震驚了整個濱河市休蟹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌日矫,老刑警劉巖赂弓,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異哪轿,居然都是意外死亡盈魁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進(jìn)店門窃诉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杨耙,“玉大人赤套,你說我怎么就攤上這事“唇牛” “怎么了于毙?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長辅搬。 經(jīng)常有香客問我唯沮,道長,這世上最難降的妖魔是什么堪遂? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任介蛉,我火速辦了婚禮,結(jié)果婚禮上溶褪,老公的妹妹穿的比我還像新娘币旧。我一直安慰自己,他們只是感情好猿妈,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布吹菱。 她就那樣靜靜地躺著,像睡著了一般彭则。 火紅的嫁衣襯著肌膚如雪鳍刷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天俯抖,我揣著相機(jī)與錄音输瓜,去河邊找鬼。 笑死芬萍,一個胖子當(dāng)著我的面吹牛尤揣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柬祠,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼北戏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了漫蛔?” 一聲冷哼從身側(cè)響起最欠,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎惩猫,沒想到半個月后芝硬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡轧房,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年拌阴,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奶镶。...
    茶點(diǎn)故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡迟赃,死狀恐怖陪拘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纤壁,我是刑警寧澤左刽,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站酌媒,受9級特大地震影響欠痴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秒咨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一喇辽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧雨席,春花似錦菩咨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至糙置,卻和暖如春缨硝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背罢低。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留胖笛,地道東北人网持。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像长踊,于是被迫代替她去往敵國和親功舀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容