第4章 圖形處理技術基礎_第1頁
第4章 圖形處理技術基礎_第2頁
第4章 圖形處理技術基礎_第3頁
第4章 圖形處理技術基礎_第4頁
第4章 圖形處理技術基礎_第5頁
已閱讀5頁,還剩90頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第4章圖形處理技術基礎

4.1圖形的幾何變換

-圖形幾何變換的基本原理

-二維圖形的基本變換

■二維圖形的組合變換

■三維圖形的變換、工程圖的生成

4.L1圖形幾何變換的基本原理

-圖形:無論二維或圖形,都是由組成圖形的點、

點之間的連線、連線構成的面、以及點、線、

面之間的關系表達的。

■圖形變換:只是改變圖形頂點的坐標,不改變

它們的拓撲關系。

■從原理上講:圖形的幾何變換,實際上位點的

變換。

4.L2二維圖形的基本變換

■一個點的坐標可以用矩陣形式[Xy]或表示,坐

標變換的矩陣表示形式為:步

■AT=B,T為變換矩陣

ab

設T

cd

ab

[axbx

[xy][xc。加

y]

變換類型

*

xaxcy

(1)比例變換

V*bxdy

當b=c=O,a、d>0,

A

[X**y][X[axdy]

中)等比例變換

a=d時

2)不等比例變換

a#d時

(2)對稱變換

1)對X軸x*axcy

a=1,d=—1;y*bxdy

2)對Y軸

a=—1,d=1;

3)對原點

A=—1,d=-1

(3)錯切變換

1)沿X方向Y

b=0,d=La=Lc#0時,

[x*y^lx+cyy]

練習:對如圖所示的邊長為10的正

方向進行c=2的錯切變換。

4OO)OO)Z*

0

81o1O1O05

1*

00

c1KO1⑵13O1C

1*

DOO——0

1。*

20

2)沿Y方向

a=l,c=0,d=Lb#0時,

[x*y^]=[xbx+y]

練習:對如圖所示的邊長為10的

正方向進行b=-0.5的錯切變換。

X*axcy

A0000y*bxdy

510010.5105B*

C101001105G

DO1000D*

3)沿X、Y兩個方向錯切

a=d=l,b,0,cWO時,[x*/]=[*+①bx+y]

舉例:對如圖所示的邊長為10的正方向進行b=c=0.5的錯

切變換。

x*axcy

y*bxdy

(4)旋轉變換

當。dcos,bsin.csin,

[x**y][xcosj/siliixsmycos

繞原點的旋轉,轉角逆時針為正。

x*axcy

y*bxdy

(5)平移變換

■無論變換矩陣中的即b,c,dx*ax

為何值,均不能實現(xiàn)圖形y*bxdy

的平移,為此需要圖形的

另一種表示坐標一齊次坐

標。

齊次坐標

z[HxHyHzH]

齊次坐標

■將一個11維空間的點用n+1維坐標來表示。

口如在直角坐標系中,二維點[xy]的齊次坐標

通常用三維坐標[HxHyH]表示;

口一個三維點[xyz]的齊次坐標通常用四維坐

標[HxHyHzH]表示。

口最后一維坐標H稱為比例因子,H為不為零

的任意實數(shù)。

■直角坐標與齊次坐標的關系

x=Hx/H

y=Hy/H

z=Hz/H

■任一點可用多個齊次坐標表示。

■例如二維點(20,10)用齊次坐標可表示為:(20,

10,1)、(40,20,2)或者(30,15,1.5);

■同理三維點(2,3,5)的齊次坐標可表示為(2,

3,5,1)或者(20,30,50,10)。

一般,總是將H設為“產,以保持兩種坐標的一致

________________________________________________

ab

變換矩陣:Tftdq

Ims

當a=d=s=l,b=c=p=q=O,I、而不全為0時,

,100I

x**y1xy1010[x

加11Im

/為x方向的平移因子,1%為丫方向的平移因

子。

齊次變換矩陣

■對于二維坐標系上的點,齊次坐標為[HxHyH];

■齊次坐標變換矩陣的形式是:

可以實現(xiàn)圖形的比列、

對稱、錯切、旋轉等

S

4.L3二維圖形的組合變換

■工程應用中,僅用基本變換不能實現(xiàn)圖形的

變換;

■必須采用兩種或兩種以上的基本變換組合才

能完成,即組合變換。

■設各次變換的變換矩陣分別為TLT2,

Tn,則組合變換矩陣是各次變換矩陣的乘

積。

繞任意一點對圖形實施旋轉變換

例1:三角形abc,坐標分別為a(6,4),b(9,4),c

(6,6),繞A(5,3)點逆時針旋轉90。

圖形變換由如下

步驟組合:

(1)平移變換

(2)旋轉變換

(3)平移變換

(1)將圖形平移

(—5,—3),使100

得旋轉中心在原點no1o

531

(2)三角形繞原

0-

點旋轉變換

0

(3)將圖形平移(/,

陽),得到滿足要求

的幾何變換。

①-④

■組合變換矩陣

H1oo0I0I00

TT\T2T010I000I0

li|l5Jl31

00I53I

則,變換后的頂點:

XJ6

a44I

,

XV9

Q-47

1

XJ6

a24I

思考:當圖形要對畫面中的某一點A(Xo,y°)作放

大時,通過哪些基本變換復合而成?

(1)首先將圖形平移,使點A與坐標原點(0,0)

重合;

⑵然后圖形以(0,0)為中心作放大;

(3)最后將圖形平移,使點A回原處。

則以點(1yj為中心,放大系數(shù)分別為XS>

S的組合變換矩陣為:

V

LLI1oosxoohoo

o,s001

TT1T2TT010

1001Un%UnJy

1

4.L4三維圖形的幾何變換

三維點坐標—三維點齊次坐標

(x,y,z)——(x,y,z,1)

三維圖形的幾何一

變換矩陣

/in

000

比例0^00

T=

變換00i0

0001

1000

0100

等比例T=

變換0010

000s

1000店z[

平移0100

T=

變換0010

mn\

三維圖變換及其變換矩陣

變換變換

名稱柜庫圖例說明

。一繞渤的旋轉角,

逆時針為正,順時針為

負。

4

"cosfi0-smO'Z

0100P—繞Y軸的旋轉角,

旋轉sinfi0cosfl0逆時針為正,順時針為

變換0001_0負°

■cosysinx0o-

店:包7-繞Z軸的旋轉角,

-sinycosy00

0010逆時針為正,順時針為

0001負。

三維圖變換及其變換矩陣

變換變換

名稱矩陣圖例說明

1000

0100

T

00-10對XOY平面的對稱變換

Y

0001乂嚀

1000

『0-100

對稱T—

0010對XOZ平面的對稱變換

變換

0001

-1000

0100

對YOZ平面的對稱變換

0010

0001

三維圖變換及其變換矩陣

蠹矩陣變換圖例

說明

000

沿X含Y的錯切,

100

010d——錯切因子,

001

1000

沿X含Z的錯切,

,0100

錯切T=

g010g——錯切因子,

變換

0001

1600沿丫含X的錯切,

0100

T=

0010b——錯切因子,

0001

三維圖變換及其變換矩陣

(3)二維圖形變換及其變換矩陣

變換變換

名稱矩陣圖例說明

1000正面投影變換,

0000圖形在XOZ平面的投

0010影,即Y坐標的比例因子

0001為零。

水平面投影變換

1000

圖形在平面的投

0100XOY

投登T

0000影,即Z坐標的比例因子

變換

0001為零。

0000

圖形在YOZ平面的投

0100

T=影,即挫標的比例因子

0010

0001為零。

應用舉例:

(1)對稱變換

四棱錐S-ABCD對XOZ平

對稱變換

,4

00

2

00

B6301=5

10

6

01

、3

4.L5三維圖形的組合變換

■原理同于二維圖形的

組合變換

度”,求旋轉后的矢量。

I”

設旋轉后的矢量為

如圖:

V=c+n*(Z*h)

c=nXZXn*cosa+

nXZ*sina

4.1.6投影變換

■投影變換是各類變換中最重要的一種,是把n維坐標系中的

點交成才、于n維坐標系的點。

投影中心:投影線的匯聚

點,或投影參考點

投影線:物體發(fā)出的光線

與投影中心的連線

觀察平面:也稱投影面,

投影圖所在的平面

平行投影:投影中心與投

影面距離無限遠

透視投影:投影中心與投

影面距離有限

投影變換過程:

■建立觀察坐標系;

■將世界坐標系中的物體變換到觀察坐標系中;

■通過正投影變換將場景投影到觀察平面。

■Pref:注視點;P0:觀察原點;N:觀察平面法向量;

■觀察方向為N的反方向;

思考題:

1.如何確定XM部的方向?

規(guī)定向上方向V=[010],再通過矢量叉乘建立觀

察坐標系。

2.如何實現(xiàn)將世界坐標系中的物體變換到觀察坐標

系中?

1.平行投影

■按投影方向是否垂直投影面,分為正平行

投影和斜平行投影。

■正平行投影的投影方向垂直于投影面。

■正投影可測量實體的距離、角度,可度量

性好,在工程制圖中應用廣泛。

工程圖的生成

三維圖形轉化為二維工程圖的變換

Z

主視圖的生成

取XOZ面為主視圖的投

影面,變化矩陣為

ooo

o0o

o1O

OO1

俯視圖的生成

■俯視圖:取XOY面為投影面,然后繞x軸順時

針旋轉90度,然后平移一定的距離d。

俯視圖變換矩陣為

L管

1Ooo

10001000o1oo

01000cos(90)sin(90)0

oo

00000sin(90)cos(90)00ood

0001Ioo

左視圖的生成

■左視圖:取YOZ面為投影面,

然后繞Z軸逆時針旋轉90度,

然后平移d。

ooooO1OOO

o1o0cos90sin90oOO1OO

0sin90cos90

oo1ooooooOO

oo1dOO

oooo11

2.軸測投影

CAD/CAM設計的圖形大多數(shù)為三維,軸測圖的顯

示需要用到軸測投影變換。

軸測投影變換實質是三維組合變換,先繞2個軸旋

轉,在向一個平面投影。

例如先繞y軸旋轉(P角,再繞x軸旋轉。角,最后向

XOY平面投影。

OOo

COsin.ooOOO

OOOOoO1OO

sm1

cos

OO?OOOOO

sincosmcos

OOOOOOOOO

■軸間角:ZX1O1YiZxq不、/Y1O1Z1

■軸向變形系數(shù):OiX[/ox=%/0丫=小O1Z1/

OZ=r|z

正二軸測投影變換

■當%=2%=1=1時,為正二軸測投影;

■先繞y軸旋轉(p=19。28”,再繞x軸旋轉。=

20°42”

■變換矩陣為:

0.9350.11800

00.94300

T

0.3540.31210

ooor

正等軸測投影變換

■當1=%=%=0?82時,為正等軸測投影;

■軸間角120。

■先繞y軸旋轉<p=45。,再繞x軸旋轉。=35。16"

■變換矩陣為:

0.7070.40800

00.81600

0.7070.40810

八001

3.透視變換

■通過投影中心將三維形體投影到投影面的變換。

■投影線從投影中心出發(fā),投影線不平行。

■比軸測圖更富立體感,投影面位于投影中心和實體之間。

小Z

P=(x,y,z)

■?

□投影中心/投影參考點(Projectionreferencepoint)

口為了簡化計算,一般情況下?。?/p>

(1)觀察平面位于觀察坐標原點;

(2)投影中心在Z眼能方向,即xyprp=0o

■則經過坐標變換,使觀察坐標系與世界坐標系重合

10°1°0°0

XyZ

011/40000

0010001

透視投影觀察體

落在近、遠裁剪平面之間的棱臺體內的物體才能被顯示。

OpenGL中,投影面與近裁剪平面重合,投影參考點位于

觀察坐標系原點。

OpenGL實現(xiàn)透視變換實例

#include"stdafx.h"

#defineGLUT_DISABLE_ATEXIT_HACKglClear(GL_COLOR_BUFFER_BIT);//Showthedolorwith

#include<GL/glut.h>displaywindowcolor

GLintwinWidth=600,winHeight=600;//Initialdisplay-/*Setparametersforacube.*/

windowsize.glColor3f(0.0,1.0,0.0);//Setobjectcolortogreen.

GLfloatxO=0.0,yO=0.0,zO=100.0;//Viewing-glutWireCube(50);

coordinateorigingIFIush();//PrcessallOpenGLroutinesasquicklyas

GLfloatxref=0.0,yref=0.0,zref=0.0;//Look-atpoint.possible

GLfloatVx=0.0,Vy=10,Vz=0.0;//View-upvector.}

/*Setcoordinatelimitsfortheclippingwindow:*/voidmain(intargc,char**argv)

GLfloatxwMin=-20.0,ywMin=-20.0,xwMax=20.0,ywMax={

20.0;glutlnit(&argc,argv);//InitialGLUT

/*Setpositionsfornearandfarclippingplanes:*/glutlnitDisplayMode(GLUT_SINGLE|GLUT_RGB);//Set

GLfloatdnear=30.0,dfar=150;displaymode,defaultset

voidinit(void)glutlnitWindowPosition(50,50);//Setleft-topdisplay

(windowposition

glClearColor(1.0,1.0,1.0,0.0);//SetdisplaywindowtoglutlnitWindowSize(winWidth,winHeight);//Setdisplay

whitewindowwidthandlength

gIMatrixMode(GL_MODELVIEW);//SetprojectioglutCreateWindow("PerspectiveViewofASquare");//Creat

parametersdisplaywindow

gluLookAt(xO,yO,zO,xref,yref,zref,Vx,Vy,Vz);init();//Executeinitializationprocedure

gIMatrixMode(GL_PROJECTION);//SetprojectioglutDisplayFunc(displayFcn);//Sendgrapicstodisplay

parameterswindow

gIFrustum(xwMin,xwMax,ywMin,ywMax,dnear,dfar);glutMainLoop();//Displayeverythingandwait

}}

voiddisplayFcn(void)

參考書[2]計算機圖形學,2.9、7.10節(jié)

課后思考題:

課后自運行以上程序,改變觀察點、參考點位置、遠、近

裁剪平面參數(shù),觀察所得到的圖形,體會投影變換的原理。

■滅點:透視圖上任何一束不平行于投影面的

平行線的透視投影的交匯點。

■主滅點:與坐標軸平行的平行線的滅點。

■根據(jù)主滅點的個數(shù),分為一點透視、二點透

視和三點透視。

1000

0101/yj

X0010fj

10001I(

p、q、r中,有1個不為零則為1點透視;

有2個不為零,則為2點透視;

有3個不為零,則為3點透視;

點透視三點透視

4.2圖形的消隱技術

4.2.1消隱的概念和作用

顯示設備描繪物體的圖形時,必須把三維信息

經過某種投影變換,在二維的顯示表面上繪制

出來。

在顯示三維圖形時,存在一些問題:

0圖形表達的二義性

(b)(c)

兩個立方體相互遮擋的關系

■概念

□消隱線和消隱面:沿著投影方向,三維實體被擋住

的線和面;

□消隱:消除消隱線和消隱面的過程。

□消隱技術:查找、確認并且消除隱藏的線與面的技

術。

■作用:

□投影變換失去了深度信息,導致圖形的二義性。

□消除圖形表達的二義性,提高圖形的真實感,使其

只有唯一解釋。

422消隱算法中的基本測試方法

測試那些線和面是可見的,那些是不可見

的。

1.重疊測試

許多物體的投影是由若干個多邊形構成的,

將這些多邊形兩兩判別,看它們是否有重

疊部分,如果不重疊,說明它們肯定不互

相遮擋。

nmsw------------------------------

□第一步(粗篩):將根本不可能重疊的多變形

篩掉。判據(jù)為:

、>linax",Emin;'/min~'Bniax

第二步:對于外接矩形有相交的情況;

□將多邊形的各邊與另一多邊形的每條邊比較;

口如果2個矩形有重疊,計算交點。

2.包含性測試

測試點與多邊形的包含關系有兩種方

法:

□射線交點數(shù)算法

□夾角求和算法

y\y卜引出射線;由交點數(shù)判斷。

二交點數(shù)為奇數(shù)時,點在多邊

形內;

"■交點數(shù)為偶數(shù)時,點在多邊

■■形外;

■射線經過頂點:

?兩條邊在射線兩側,

記相交一次;

--?兩條邊在射線一側,

記相交2或0次;

■射線經過多邊形的邊,改變

射線方向。

勺有向邊。

■測試點與多邊形每

條邊的兩端點構成

三角形;

■求被測試點與多變

形各邊對應的中心

角;

2,在內部;

I

0,在外部;

i

3?深度測試

深度測試是用來測

本方法。

?ZAZ2,點門喘;

■Z2>Z1,速可見;

4.可見性測試

判別物體哪些部分是可見的,哪些部分是不可見的。

矢量S為觀察方向;

Y

時、澗另]舉蟒卜

希鎏正則為可見面。

X

423常用消隱算法

■經過測試,可判別物體之間是否有重疊,如

果有重疊,需進行消隱處理。

?很多基本算法,適用某些領域,沒有一種能

夠使用所用的領域;

□Z緩沖器掃描線算法

Z緩沖器算法

■深度緩沖器算法,圖形消隱中經常使用的方法。

存放像素顏色值存放像素深度值

Z緩沖器算法基本原理

■物體上的點(X,y,z)對應于屏幕上的每個像素

點(x,y)

Z3>Z可見

Z緩沖器算法步驟

■初始化

□深度緩沖器的初始設置為足夠小的z值;

□幀緩沖器中各單元(X,y)取背景色;

'逐點處理

□確定物體多邊形上每一點的深度值z;

□如當前z值大于原有值,則將此深度值替換原有

值;

□此點的顏色值替換幀緩沖器中的原有值。

4.3圖形裁剪技術

-圖的大小和復雜程度不同,需要將圖顯示在

計算機屏幕上;

"裁剪技術:使圖形恰當?shù)娘@示在屏幕上的處

理技術

4.3.1窗口與視區(qū)

1.用戶域與窗口區(qū)

■用戶域:程序員用來定義整個草圖的自然空間。

□用戶域數(shù)連續(xù)無限的;

口用戶域中的坐標系為用戶坐標系或世界坐標系。

用笛卡爾右手坐標系表示。

■窗口區(qū):用戶指定的任一區(qū)域。

□小于或等于用戶域。

■只關心整幅圖形的特定部位,希望這部分圖形清

晰地顯示出來。

■在二維平面,窗口為一矩形,用四個變量代表窗

口左下角和右上角點的坐標,即:

WrXWmin

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論