電腦基礎(chǔ)知識(shí)計(jì)算機(jī)圖形學(xué)chap6 二維變換及二維觀察_第1頁(yè)
電腦基礎(chǔ)知識(shí)計(jì)算機(jī)圖形學(xué)chap6 二維變換及二維觀察_第2頁(yè)
電腦基礎(chǔ)知識(shí)計(jì)算機(jī)圖形學(xué)chap6 二維變換及二維觀察_第3頁(yè)
電腦基礎(chǔ)知識(shí)計(jì)算機(jī)圖形學(xué)chap6 二維變換及二維觀察_第4頁(yè)
電腦基礎(chǔ)知識(shí)計(jì)算機(jī)圖形學(xué)chap6 二維變換及二維觀察_第5頁(yè)
已閱讀5頁(yè),還剩142頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

ECUST

計(jì)算機(jī)■移孽基磁

華東理工人學(xué)必算機(jī)祭?謝屹玲

第力*二箱曖換及二瓶機(jī)塞

□如何對(duì)二維圖形進(jìn)行方向、尺寸和形狀方面的

變換。

□如何進(jìn)行二維觀察。

2

二瓶變換及二橫機(jī)察

□基本幾何變換與基本概念

口二維圖形幾何變換的計(jì)算

口復(fù)合變換

口變換的性質(zhì)

3

6.2基4幾何麥換

□圖形的幾何變換

■平移、旋轉(zhuǎn)、縮放、反射和錯(cuò)切

■變換的組合

□圖形幾何變換的目的

改變圖形的位置、方向、大小

□基本幾何變換

都是相對(duì)于坐標(biāo)原點(diǎn)和坐標(biāo)軸進(jìn)行的幾何變換。

4

6-2齊次全標(biāo)

口齊次坐標(biāo)

將一個(gè)原本是〃維的向量用一個(gè)〃+i維向量來(lái)表示。

■例如:向量(再,巧,…,司)的齊次坐標(biāo)表示為(〃片,

例,…,Hxn,由,其中跟一個(gè)不為。的實(shí)數(shù)。

■省1的齊次坐標(biāo)稱(chēng)為規(guī)范化齊次坐標(biāo);

■反之:由點(diǎn)或向量的齊次坐標(biāo)(〃入1,〃巧,…,Hxn,

⑼,求它的規(guī)范化齊次坐標(biāo),可根據(jù)如下公式求得

〔=例Hx[H

x/H,???xn=

□齊次坐標(biāo)表示法的優(yōu)點(diǎn)

■修平移、旋轉(zhuǎn)、縮放等變換同統(tǒng)一的方式表示

基洋幾何曖族----規(guī)范化齊次坐標(biāo)

口齊次坐標(biāo)表示就是用n+1維向量表示一個(gè)n維向量。

口規(guī)范化齊次坐標(biāo)表示就是h=l的齊次坐標(biāo)表示。

(X,V)U(X,V,1)

6

7.2二瓶幾何變換的齊決坐標(biāo)表東

口恒等變換

平面圖形的恒等變換保持原圖形的大小、形狀

、位置不變,其變換矩陣為:

1oo

心。=|010

001

基洋幾何變換——平移變換

□平移是指將P點(diǎn)沿直線路徑從一個(gè)坐標(biāo)位置移

到另一個(gè)坐標(biāo)位置的重定位過(guò)程。

x'=x+7

x

圖6-1平移變換

8

基洋幾何變換——平移變換

-100

設(shè):P'=[/y,l]=[xy1]010

TxTy1

令:T(&7p=[1001

010

工Ty1

記:P'=P*T(&Q

&4稱(chēng)為平移矢量。

基洋幾何變換----比例變換

□比例變換是指對(duì)p點(diǎn)相對(duì)于坐標(biāo)原點(diǎn)沿X方向放

縮5x倍,沿y方向放縮5y倍o其中5乂和Sy稱(chēng)為

比例系數(shù)。%'=S,-X

V=s-

圖6-2比例變換(Sx=2,Sy=3)

10

基洋幾何變換----比例變換

矩陣形式:「S.00

設(shè):P'=[/y,1]=[xy1]0Sy0

_001.

令:s(鼠與)=]&oo-

0多0

-001-

記:P,=P*S(%5P

S『,歷稱(chēng)為比例系數(shù)。

11

基洋幾何變換----比例變換

(a)Sx=Sy比例(b)Sx<>Sy比例

圖6-3比例變換

基洋幾何變換一叱例變換

整體比例變換:

100

x!y!1]=[xy1]?010

005

當(dāng)S>1,圖形整體縮小;當(dāng)S<1,圖形整體放大。

基洋幾何變換——族籍變換

□二維旋轉(zhuǎn)是指圈P點(diǎn)繞坐標(biāo)原點(diǎn)轉(zhuǎn)動(dòng)某個(gè)角度(逆時(shí)

針為正,順時(shí)針為負(fù))得到新的點(diǎn)p'的重定位過(guò)程。

x'=r*cos(a+0)

=r,cose,cosa-r,sin&sina

=x*cos0-y*sin0

y'=resin(a+0)

=r?cos??sina+r?sine?cosoc

=x*sin6+yecos6

圖6-4旋轉(zhuǎn)變換

基洋幾何變換——族籍變換

口矩陣形式:逆時(shí)針旋轉(zhuǎn)e角

cosOsinO1

設(shè):P、=[x'y'l]=[xy1]-sinOcosO0

[001

令:R(。)=cosOsinG1

-sinOcosO0

001

記:P'=P*R(8)

15

基井幾何曖換----二推變換擇陣OF

X

T1=Fab]比例、旋轉(zhuǎn)、對(duì)稱(chēng)、錯(cuò)切等;

cd;_ax+cy+1

T2=[jm]平移X

T3=p]投影px+qy+s

q_bx+dy+m

T4=\S]整體匕匕傷]

基井幾何曖換----對(duì)稱(chēng)變換

□對(duì)稱(chēng)變換后的圖形是原圖形關(guān)于某一軸線或

原點(diǎn)的鏡像。?

A

(a)關(guān)于x軸對(duì)稱(chēng)(c)關(guān)于原點(diǎn)對(duì)稱(chēng)

17

基洋幾何曖族----對(duì)稱(chēng)變換

(d)關(guān)于x=y對(duì)稱(chēng)

18

基4幾何變換—對(duì)繇變換

(1)關(guān)于X軸對(duì)稱(chēng)▲

?P(x,y)

「%Q?9飛-----------?

X

||0)/

?|VC~dxg??P'(x,-y)

[p/曲1j

圖6-6關(guān)于x軸對(duì)稱(chēng)

19

基洋幾何曖族----對(duì)稱(chēng)變換

(2)關(guān)于y軸對(duì)稱(chēng)f

--1oo]P'(-^y)p(*y)

010-----------------------

001

圖6-6關(guān)于y軸對(duì)稱(chēng)

基井幾何曖換----對(duì)稱(chēng)變換OF

(3)關(guān)于原點(diǎn)對(duì)稱(chēng)A

A?P(x,y)

--10ol-----------------x

0-10

001

圖6-6關(guān)于原點(diǎn)對(duì)稱(chēng)

21

基井幾何曖換----對(duì)稱(chēng)變換

(4)關(guān)于y=x軸對(duì)稱(chēng)

「。10]

100

001

圖6-6關(guān)于x=y對(duì)稱(chēng)

基井幾何曖換----對(duì)稱(chēng)變換

(5)關(guān)于丫=-x軸對(duì)稱(chēng)

A

-0-10P(x,y)

-100

P'(%x)\X

001

圖6-6關(guān)于x=-y對(duì)稱(chēng)

23

基井幾何曖換----耐切變換

口錯(cuò)切變換,也稱(chēng)為剪切、錯(cuò)位變換,用于產(chǎn)

生彈性物體的變形處理。

圖6-7錯(cuò)切變換

24

基井幾何曖換----耐切變換

①沿X方向關(guān)于Y軸的錯(cuò)切

矩形P1P2P3P4沿X方向錯(cuò)切變換,得到矩形P1P2P3‘pJ錯(cuò)

切角e,點(diǎn)ix,y)變換為:

x'=x+y*tan(0),y'=y

令:shA.=tan(0)■y*tan(0);

記:_x'y'1_=_xy。100y一1「3的「巴

shY10

-001-

?

?

/

?

----1-z-----------?

Plp2

圖6.7沿X方向錯(cuò)切

基井幾何曖換----耐切變換

②沿Y方向關(guān)于X軸的錯(cuò)切

矩形P1P2P3P4沿丫方向錯(cuò)切變換,得到矩形「逮2,394,錯(cuò)切

角0,點(diǎn)(x,y)變換為:

x'=x,y'=y+x*tan(0)

P\

令:shy=tan(0)

x*tan(O)

記:x,y,L=_xy。1shy0■

77"

010P\

001,4

------V—

,dp2

圖6.7沿Y方向錯(cuò)切

基井幾何曖換----耐切變換

③沿兩個(gè)方向的錯(cuò)切

x'=x+y*tan(a)

y'=y+x*tan(0)

令:shY=taxn(a)、ysh=tan(0)

記:x'y'1=xy11sh0y*tan(a)

_i\—_iyv

----p-

shY10

,p4:巧

-001-a/lP\

圖6.7沿X、Y方向錯(cuò)切

基井幾何曖換----耐切變換

其變換矩陣為:「1b0-

c10

001

(1)沿X方向錯(cuò)切:b=0

(2)沿y方向錯(cuò)切:c=0

(3)兩個(gè)方向錯(cuò)切:bwO,cwO

28

二箍圖形幾何變換的計(jì)算

幾何變換均可表示成P'=P*T的形式。

1.點(diǎn)的變換

abp

x!y!1J=[xy1]?cdq

Imr

29

二箍圖形幾何變換"算

2.直線的變換

abp

/A11「/Pl11|7

=-caq

xiy2L_x2y2L

Imr

30

二箍圖形幾何變換"算

3.多邊形的變換

X11X11

X2%1X2%1abP

X31X3兀1dq

mr

3幾131

31

復(fù)合麥換

□圖形作一次以上的幾何變換,變換結(jié)果是每

次變換矩陣的乘積。

□任何一復(fù)雜的幾何變換都可以看作基本幾何

變換的組合形式。

□復(fù)合變換具有形式:

P,=p.T=P(T/2T3?…T)

=PTfT2T3...Tn(n>l)

32

復(fù)合曖換----二推復(fù)合不移

100100

010010

,工2

Ty2

TX1,1Tx2,1

100

010

T,十+T1

X1x2V2

33

復(fù)合曖換----二推復(fù)合比例

1

Sx1I0o]「Sx200

、?、=*、

Ts=Ts1Ts20s,00sy20

001001

I

sx1?sx2,00

0S-S.0

y1y2

001

34

復(fù)合曖換----二推復(fù)合族挎

Icose[sin910]「cos3?sin320~|

0!?!-sin9cos90!

—sin/cose[

II

001001

rCOS(0x+。2)sin(圻+2)0]

?-sin(2+%)cos(2+2)0?

001

R=R(a)?R?)=R0十%)

35

復(fù)合變換

cos0sin00-)「cos0oonritgeon

R=-sincos00=0cos00--tg010

001J|_001J|_001

itgeoqrcoso0o-

-tg3100cos00

001001

旋轉(zhuǎn)變換等價(jià)于先比例后錯(cuò)切,或者先錯(cuò)切后比例。

36

復(fù)合變換

□矩陣相乘是符合結(jié)合律,但不符合交換律。

A-B-C=(A-B)-C=A"(B-C)

□在連續(xù)的同種變換的特殊情況下,矩陣相乘可以符合

交換律。

1.二次連續(xù)旋轉(zhuǎn),可以用任意順序進(jìn)行;

2.連續(xù)的平移或連續(xù)的比例變換可以交換;

3.兩向相同(Sx=Sy)的比例變換與旋轉(zhuǎn)變換

Ay

可以交換。

相對(duì)低一參考點(diǎn)的二推幾何變換OF

□相對(duì)某個(gè)參考點(diǎn)(XF,F(xiàn))作二維幾何變換,其變

換過(guò)程為:

(1)平移;

(2)針對(duì)原點(diǎn)進(jìn)行二維幾何變換;

(3)反平移。

38

相對(duì)低一參考點(diǎn)的二推幾何變換

則:P'=P?(T(-xA,-yA)?S(sx,sy)*T(xA,yA)}

記:

010000

y0010Sy0

)1-XAVA1-yA(『Sy)1_

2.圍繞任一基準(zhǔn)點(diǎn)的旋轉(zhuǎn)變換

,(11b

A限、R(。)?\I(XA,yQ

A(XA,?)O'\?A—A”

0

AA

則:P'=P-{T(-x,-y)?R(6)-T(X

AAA,yA))

記:R(0)=T(-X,-y)?R(6)?T(x

AAAA,yA)

「?=100cos6sin001oo-

010-singcos00C10

-%YA1

-xAyA1」L001-1L;」

=cos0sin30

-sin3cos00

.JX(1-COS0)+ysin0y(l-cosQ)-xsin0I.

AAAA

相對(duì)值一參考點(diǎn)的二箍率

例工錯(cuò)切變換

矩形片44〃沿X軸、Y軸雙向錯(cuò)切儀

*

設(shè):tan(0)=2,tan((I))二l

100110100111010

010210010二21Q

Q鳥(niǎo)x

111001-1-11211①

--

則P'=-1-1r110一-1-1r

3-11210331

-141211941

34113Y1

相對(duì)低一參考點(diǎn)的二推幾何變換

例2組合變換平面圖形變換舉例

設(shè)△尸3的三個(gè)頂點(diǎn)分別為:

尸1(10,20),

鳥(niǎo)(20,20),

乙(15,30),

它繞點(diǎn)0(5,25)逆時(shí)針?lè)较蛐D(zhuǎn)30。。它的復(fù)合變換

由如下三種變換組成:

(1)平移,使Q移到簿點(diǎn)。,平移常量/=-5,片一

25,平移變換矩陣為:100

4=010

-5-251

相對(duì)低一參考點(diǎn)的二推幾何變換

(1)平移,使Q移到原點(diǎn)。,平移常量/=-5,片-25,平

移變換矩陣為。,平移變換后的2〃3。

100

4=01o

-5-251

相對(duì)低一參考點(diǎn)的二推幾何變換

(2)繞原點(diǎn)逆時(shí)針旋轉(zhuǎn)30

變換后的1/2產(chǎn)3。

cos30°sin3O°

4=-sin3O°cos30°

00

相對(duì)低一參考點(diǎn)的二推幾何變換

(3)最后修。點(diǎn)移回原來(lái)位置。(5,25),平移變換矩陣為

T3,旋轉(zhuǎn)變換后的△尸*1卜2#*3。

100

010

5251

相對(duì)值意方向的二罐幾何要換

□相對(duì)任意方向作二維幾何變換,其變換的過(guò)

程是:

(1)旋轉(zhuǎn)變換,使任意方向與某個(gè)軸重合;

(2)針對(duì)坐標(biāo)軸進(jìn)行二維幾何變換;

(3)反向旋轉(zhuǎn),回到原來(lái)的方向。

46

①I(mǎi):平移(0,-Ty),使L過(guò)坐標(biāo)原點(diǎn),圖形A變換為A1

②Ri:旋轉(zhuǎn)-6,使L與X軸重合,圖形A1變換為A?

③RFx:圖形A2關(guān)于X軸的對(duì)稱(chēng)圖形A3

@R2:旋轉(zhuǎn)e,圖形A3變換為A4

⑤丁2:平移(O,Ty),使L回到原來(lái)的位置,圖形A4變換為A5,

此時(shí),是A關(guān)于L的對(duì)稱(chēng)圖形。

總的變換:L?RFX?R2?T2(7.37)

對(duì)任意直線的對(duì)稱(chēng)變換

設(shè):直線的方程為:ax+by+c=0

則:在X、Y兩軸上的截距分別為-c/a和-c/b;

直線的斜率為tga=-a/b。

⑴讓直線沿X軸方向平移c/a,使其通過(guò)坐標(biāo)系原點(diǎn)。

變換矩陣為:

100

Tl=010

c/a01

⑵讓直線繞坐標(biāo)系原點(diǎn)旋轉(zhuǎn)-a角,

使與X軸重合。變換矩陣為:

cosa-since0

T2=sinacosa0

001

(3)由于原直線已與X軸重合,于是對(duì)于直線的對(duì)稱(chēng)

變換即為對(duì)于X軸的對(duì)稱(chēng)變換。變換矩陣為:

100

T3=0-10

001

(4)繞原點(diǎn)旋轉(zhuǎn)a角,使直線恢復(fù)到原傾斜位置。

變換矩陣為:八

cosasma。

T4=-sinacosa°

001

⑸讓直線沿X軸方向平移/a,使其回到原來(lái)位置。

變換矩陣為:

100

T5=010

-c/a01

綜合以上的五步,對(duì)任意直線的對(duì)稱(chēng)

變換過(guò)程為:

[x*y*1]=[xy1]?T1?T2?T3?T4?T5

=[xy1]*T

組合變換矩陣T為:

'cos2asin2a0

T=sin2a-cos2a0

(c/a)(cos2a-1)(c/a)sin2a1

y

相對(duì)值意方向的二罐幾何要換

□例相對(duì)直線y=x的反射變換

T=cos(-45)sin(-45)0100cos(45)sin(45)0

-sin(-45)cos(-45)00-10-sin(45)c0s(45)0

-00iJLo01

-001

55

復(fù)合變換

例將正方形ABCO各點(diǎn)沿下圖所示的

(0,0)-(1,1)方向進(jìn)行拉伸(比例變換),結(jié)

果為如圖所示的,寫(xiě)出其變換矩陣和變換過(guò)程。

56

可能發(fā)生的變換:沿(0,0)

到(L1)的比例變換

圖6Tl沿固定方向拉伸

oO

rcos(-45)sin(-45)0〕「s00"|rcos45°sin45°ol

IooII-S0!-I-sin45°cos45°0!

T=?-sin(-45)cos(-45)0

°r|y|II

001001001

P'=P?T

坐標(biāo)系之間的變換

問(wèn)題:已知XOY坐標(biāo)系上的P(Xp,yp),求P轉(zhuǎn)換到

坐標(biāo)系上的P,(x1,y')。

圖6-9坐標(biāo)系間的變換

58

坐標(biāo)系之間的變換

分析:

在xoy坐標(biāo)系中有點(diǎn)p*,其y▲

坐標(biāo)與p點(diǎn)在x,o,y,坐標(biāo)系下P.也即p'

y

的坐標(biāo)相等:X

5

op/=opx;*

Opg*Px

OPy*=O'Py;y□e

則P*點(diǎn)的坐標(biāo)是P點(diǎn)變換到P9O'(xo,yo)

點(diǎn)的坐標(biāo)。

o*X

圖6To坐標(biāo)系間的變換的原理

59

圖6T4坐標(biāo)系間的變換的步驟

于是:

p'-xfyf1-xy1-T

LppPP

-p-T-p-T-T

tR

-100cos0-sin0

T=Tt-Tr=010?sin3cos00

1001

光柵變換

□直接對(duì)幀緩存中象素點(diǎn)進(jìn)行操作的變換稱(chēng)為光

柵變換。

□光柵平移變換:

tsi

,★

(a)讀出象素塊的內(nèi)容(b)復(fù)制象素塊的內(nèi)容(c)擦除原象素塊的內(nèi)容

圖6-12光柵平移變換62

光柵變換

□90°、180°和270。的光柵旋轉(zhuǎn)變換:

(vollen-y,x)

yvo

(r(wlen-x,vollen-y)

^vollen

row1en

(a)逆時(shí)針旋轉(zhuǎn)90°(b)逆時(shí)針旋轉(zhuǎn)180°

①每行像素值顛倒——擦掉;①每行像素次序顛倒;

②交換其行列。②行的次序顛倒。

圖6-13光柵旋轉(zhuǎn)變換63

64

光柵變換

圖6-15光柵比例變換

根據(jù)Sx和Sy的大小,取出對(duì)應(yīng)于變換后圖像中的一個(gè)像素點(diǎn)的原圖

中的相應(yīng)像素區(qū)域,對(duì)其區(qū)域的像素點(diǎn)的亮度加權(quán)平均,得變換后

像素的亮度。

變換的轆質(zhì)

二維仿射變換是具有如下形式的二維坐標(biāo)變換:

x'=ax+by+m

<

y'-ex+dy+n

□平移、比例、旋轉(zhuǎn)、錯(cuò)切和反射等變換均是二

維仿射變換的特例,反過(guò)來(lái),任何常用的二維

仿射變換總可以表示為這五種變換的復(fù)合。

66

變換的轆質(zhì)

口僅包含旋轉(zhuǎn)、平移和反射的仿射變換維持角度

和長(zhǎng)度的不變性;

□比例變換可改變圖形的大小和形狀;

口錯(cuò)切變換引起圖形角度關(guān)系的改變,甚至導(dǎo)致

圖形發(fā)生畸變。

67

二箍理察

□基本概念

□二維觀察變換

□二維裁剪

□OpenGL中的二維觀察

68

二箍理察

□坐標(biāo)系

鼻模坐標(biāo)系(MC,ModelingCoordinateSystem)

用戶坐標(biāo)系(WC,WorldCoordinateSystem)

I直角坐標(biāo)系(又稱(chēng)笛卡爾坐標(biāo)系)

坐標(biāo)系["極坐標(biāo)系

觀察坐標(biāo)系(VC,ViewingCoordinateSystem)

規(guī)范化坐標(biāo)系(NDC,NormalizedCoordinate

System)

設(shè)備坐標(biāo)系(DC,DeviceCoordinateSystem)

二箍理察

□坐標(biāo)系

1.建模坐標(biāo)系(MC,ModelingCoordinates)

依據(jù)物體而建的局部坐標(biāo)系,是直角右手坐

標(biāo)系,長(zhǎng)度單位用戶自定,取值范圍整個(gè)實(shí)數(shù)

域。

2.世界坐標(biāo)系(WC,WorldCoordinates)

又稱(chēng)用戶坐標(biāo)系,場(chǎng)景采用的坐標(biāo)系,是直

角右手坐標(biāo)系,長(zhǎng)度單位用戶自定,取值范圍

整個(gè)實(shí)數(shù)域。

二箍理察

□坐標(biāo)系

3.設(shè)備坐標(biāo)系(DC,DeviceCoordinates)

依設(shè)備而定的坐標(biāo)系,是二維直角坐標(biāo)系,原點(diǎn)和軸

的定義依設(shè)備不同而不同,長(zhǎng)度單位是設(shè)備的步距,取

值范圍有限的整數(shù)。

4.規(guī)格化設(shè)備坐標(biāo)系(NDC,NormalizedDeviceCoordinates)

_一種虛擬的坐標(biāo)系,與具體設(shè)備無(wú)關(guān),其取值范圍在

0一1之間,起到嚼WC與DC聯(lián)系起來(lái)的作用。

用戶的繪圖數(shù)據(jù)經(jīng)過(guò)轉(zhuǎn)換成NDC中的值,使得圖形有

了統(tǒng)一的設(shè)備空間。這對(duì)圖形的統(tǒng)一處理,帶來(lái)很大的

方便,從而提高圖形程序的可移植性。

二箍理察

□坐標(biāo)系gDC

MC、WC、NDC、DC之間的轉(zhuǎn)換

X

MC

圖二維場(chǎng)景從模型坐標(biāo)系到設(shè)備坐標(biāo)系的變換序列

(Xmc.Ymc)->(Xwc.Ywc)->(Xndc,丫ndc)->(Xdc.Ydc)

二箱理察----基存概念

口窗口

在世界坐標(biāo)系(WC)中,指定或選取一個(gè)矩形區(qū)域(Window)

□視區(qū)

在規(guī)格化設(shè)備坐標(biāo)系(NDC)或設(shè)備坐標(biāo)系(DC)上,指定一

個(gè)矩形區(qū)域(ViewPort),用于顯示窗口內(nèi)的圖形。

口開(kāi)窗口

先將圖形關(guān)于窗口進(jìn)行裁剪,然后將裁剪后的保留在窗口

內(nèi)的圖形,變換成顯示器屏幕上指定視區(qū)內(nèi)的圖形。

開(kāi)窗變換也叫取景變換,它包括裁剪運(yùn)算和窗口到視區(qū)的

變換。

二箱理察----基存概念

(b)屏幕坐標(biāo)系中的視區(qū)

□要將窗口內(nèi)的圖形在視區(qū)中顯示出來(lái),必須經(jīng)過(guò)將窗口到

視區(qū)的變換(Window-ViewportTransformation)處

理,這種變換就是觀察變換(Viewing

Transformation)。

74

圖6-17用戶坐標(biāo)系中旋轉(zhuǎn)的窗口

3

Q

N

1

視區(qū)

1xNDC

(a)觀察坐標(biāo)系(b)規(guī)格化設(shè)備坐標(biāo)系

二箱理察----基存概念

□觀察坐標(biāo)系(ViewCoordinate)是依據(jù)窗口的方

向和形狀在用戶坐標(biāo)平面中定義的直角坐標(biāo)系O

□規(guī)格化設(shè)備坐標(biāo)系(NormalizedDevice

Coordinate)也是直角坐標(biāo)系,它是將二維的設(shè)

備坐標(biāo)系規(guī)格化到(0.0,0.0)到(1.0,

1.0)的坐標(biāo)范圍內(nèi)形成的。

76

二箍機(jī)察----基存概念

□引入了觀察坐標(biāo)系和規(guī)格化設(shè)備坐標(biāo)系后,觀

察變換分為如下圖所示的幾個(gè)步驟,通常稱(chēng)為

二維觀察流程。

應(yīng)

觀窗口到視

序用戶坐視圖區(qū)從

標(biāo)區(qū)(規(guī)范

圖標(biāo)系到規(guī)范化坐在圖形

VC對(duì)VC化設(shè)備坐NDC

的觀察坐標(biāo)系到設(shè)斗設(shè)備上

進(jìn)標(biāo)系中定

戶標(biāo)系間備坐標(biāo)系輸出

剪義)的變

標(biāo)的變換的變換

圖6-19二維觀察流程

77

二旗機(jī)察----基4就念

□變焦距效果

(b)與窗口對(duì)應(yīng)

的視區(qū)1

(a)原圖及變化的窗口

圖6-20變焦距效果(窗口變、視區(qū)不變)

視區(qū)大小不變,當(dāng)窗口變小,放大顯示;當(dāng)窗口變大,

縮小顯示,則產(chǎn)生焦距(又稱(chēng)變焦)縮放的效果;

78

二旗機(jī)察----基4就念

□整體放縮效果

(b)視區(qū)1

(a)原圖及窗口圖6-21整體放縮效果(窗口不變、視區(qū)變)

口漫游效果

視區(qū)大小不變,窗口大小不變,只改變窗口位置,則產(chǎn)

生搖鏡頭(又稱(chēng)漫游)的效果。

79

用戶生標(biāo)東?!也零坐標(biāo)東的變換

□用戶坐標(biāo)系到觀察坐標(biāo)系的變換分由兩個(gè)變

換步驟合成:

?平移:將觀察坐標(biāo)系原點(diǎn)移動(dòng)到用戶坐標(biāo)

80

用戶生標(biāo)東?!也零坐標(biāo)東的變換

?旋轉(zhuǎn):繞原點(diǎn)旋轉(zhuǎn)使兩坐標(biāo)系重合

/k

Xk

(b)旋轉(zhuǎn)變換

81

用戶生標(biāo)系割視察坐標(biāo)東的麥族

假設(shè)觀察坐標(biāo)系的原點(diǎn)在用戶坐標(biāo)系中的坐

標(biāo)為(Xo,yo),觀察坐標(biāo)系與用戶坐標(biāo)系之間的

夾角為6,則變換矩陣為:

100]「cos0一sin。0

T=T""01o|.|sinQcos60

——歹01001

82

CS

窗口利視成的變換

X

DCS

圖6.23窗口-視區(qū)變換示意圖

觀察窗口左下角(xW[,yWb),右上角(xw〃ywt)。

視區(qū)左下角(Xv[,yvb),右上角(Xvr'vt)。

窗口制祝成的變換

要求畫(huà)面相對(duì)比例保持不變。

窗口內(nèi)點(diǎn)&亞,yw)映射到視區(qū)(xv,yv),應(yīng)滿足:

('川一'wmi,/('wmax~^wmin^——XymiP/(Xymax~^vmin^

(YJ~/(ywmax一ywfl4n)-(Vy—yvmiP

窗口割視成的變換

[('vmax—Xymin)^wmax一'wmiP1*-^wmin^X-

Xvvmin

yv—I-vmaxvmin^^wmax一丫亞暄11)】*ywmiPDvinin

簡(jiǎn)化:Xv=A-xw+B

Yv=C-yw+D

其中.卜一('vmax—Xynii,^wmax~^wmin^

B-Xvmin一xwnun"A

ywiniJ

C=(Yvmax-yvmin)/^wmax

DorninYwmin式

窗口割視成的變換

□將窗口內(nèi)的點(diǎn)(Xw,。)映射到相對(duì)應(yīng)的視區(qū)內(nèi)的點(diǎn)

(xv/yv)需進(jìn)行以下步驟:

(1)4號(hào)窗口左下角點(diǎn)移至用戶系統(tǒng)系的坐標(biāo)原點(diǎn),平移矢量

為(-Xwl,-Ywb),

(2)針對(duì)原點(diǎn)進(jìn)行比例變換,使窗口大小與視區(qū)相等,比例

因子為:Sx二(又丫L乂丫“色加-乂喇)

s

y=(yvt-yvb)/(ywt-ywb)

(3)進(jìn)行反平移,使窗口與視區(qū)重合,平移矢量為(-Xvi.-

Yvb)0

86

窗口割視成的變換

窗口到視區(qū)的變換:

N=T

wc->DCi(-xwh-ywb)?S(Sx.Sy)?T2(-xvh-yvb)

=A0O-

0C0

/這里:A、C稱(chēng)為比例因子,

_BD1.B、D稱(chēng)為平移因子

其中:A二(x-x|)/(x-x|)

vrvwrw/當(dāng)A=C,窗口到視區(qū)的映射,

可以保持在X、Y兩方向有相

c=(yvt-yvb)/(ywt-Ywb)同的比例;

/當(dāng)則保持圖形變換

D二yvb-ywbcA=C=1,

前后大小保持不變。

口在二維觀察中,需要在觀察坐標(biāo)系下對(duì)窗口進(jìn)行

裁剪,即只保留窗口內(nèi)的那部分圖形,去掉窗口

外的圖形。

口假設(shè)窗口是標(biāo)準(zhǔn)矩形,即邊與坐標(biāo)軸平行的矩形,

由上(yMWyt)、下(y=Wyb)、左(x=Wxi)、

右(X=Wxr)四條邊描述。

□點(diǎn)(X,y)在窗口內(nèi),則滿足:Wx)<X<Wxr、

wyb<y<wyto

88

二旗直核段的栽噌

已知條件:

(1)窗口邊界wxl,wxr,wyb,wyt的坐標(biāo)值;

(2)直線段端點(diǎn)pip2的坐標(biāo)值、1,1,々,丫2。

圖6.24直線段與窗口的3種關(guān)系89

Pz

X

圖6.25直線段與窗口邊界的2種交點(diǎn)

□實(shí)交點(diǎn):直線段與窗口矩形邊界的交點(diǎn);

口虛交點(diǎn):處于直線段延長(zhǎng)線或窗口邊界延長(zhǎng)線上

的交點(diǎn)。

□直線裁剪的基本原理

1.首先確定哪些直線全部保留或全部裁剪;

2.對(duì)于部分裁剪的直線,應(yīng)求出直線與窗口邊界的

交占-

八、、)

3.把從交點(diǎn)開(kāi)始到邊界外的部分裁剪掉。

□常用裁剪算法

1.Cohen-Sutherland裁剪算法(又稱(chēng)編碼裁剪算法)

2.中點(diǎn)分割算法

3匚參數(shù)化算法(Liang-Barsky算法)

91

Cohen-Sutherland算收

□基本思想

對(duì)于每條線段P1P2分為三種情況處理分為三種情況

處理:

1.若PR2完全在窗口內(nèi),則顯示該線段P』2簡(jiǎn)稱(chēng)“取

”之。

2.若PR2明顯在窗口外,則丟棄該線段,簡(jiǎn)稱(chēng)“棄

力之。

3,若線段不滿足“取”或“棄”的條件,則在交點(diǎn)

處把線段分為兩段。其中一段完全在窗口外,可棄

之。然后對(duì)另一段重復(fù)上述處理。

Cohen-Sutherland算收

□編碼

對(duì)于任一端點(diǎn)(x,y),根據(jù)其坐標(biāo)所在的區(qū)域,

賦予一個(gè)4位的二進(jìn)制碼D3D2DQ0。

3210

編碼規(guī)則如下:

(1)D0=l,否則Do=O;

(2)若x>wxr,D]=l,否則D]=0;

若y〈wyb,D2=l,否則口2=0;

(4)若y>wyt,D3=l,否則口3=0。

wxlwxr

320

1010

0010

0110

Cohen-Sutherland算收

(1)判斷

裁剪一條線段時(shí),先求出直線段端點(diǎn)火和Pz的編

碼codel和code2,然后:

①若codel|code2=0,表明pi和p2區(qū)域碼都為0000,

Pi和P2完全在窗口內(nèi),則對(duì)直線段簡(jiǎn)取之;

②若codel&code2wO,表明p1和p2區(qū)域碼至少在某

一位上同為1,Pi和P2完全在窗口外,則對(duì)直線段簡(jiǎn)

棄之;

95

Cohen-Sutherland算收

(2)求交

若上述判斷條件不成立,則需求出直線段與窗口

邊界的交點(diǎn)。

通常檢測(cè)PL如果P1在窗口外,則從低到高的順

序檢測(cè)P1的編碼CODEL根據(jù)值為1的編碼位確定

與P1P2求交的窗口邊界,按左右上下邊界情況求出

交點(diǎn)代替pL用新的P1P2重新計(jì)算;如果P1在窗口

內(nèi)(即編碼為全0),貝I將P1和P2交換,繼續(xù)求交。

96

Cohen-Sutherland算收

(2)求交

設(shè):已知一條端點(diǎn)為(xl,yl)和(x2,y2)的直線:

①左邊界(X=XW|)>右邊界(x=xwr)交點(diǎn)的計(jì)算:

y=yl+k(x-xl);

②上邊界(y=ywb)>下邊界(丫=丫比)交點(diǎn)的計(jì)算:

x=xl+(y-yl)/k;

其中,k=(y2-yl)/(x2-xl)o

97

Cohen-Sutherland算收

□計(jì)算線段Pl(xl,yl)P2(x2,口)與窗口邊界的交點(diǎn),其區(qū)域

碼分別為codel和code2。

if(codel!=0)code=codel;elsecode=code2;

if(LEFT&code!=0)

{x=XL;y=yl+(y2-yl)*(XL-xl)/(x2-xl);}

elseif(RIGHT&code!=0)

{x=XR;y=yl+(y2-yl)*(XR-xl)/(x2-xl);}

elseif(BOTTOM&code!=0)

{y=YB;x=xl+(x2-xl)*(YB-yl)/(y2-yl);}

elseif(TOP&code!=0)

{y=YT;x=xl+(x2-xl)*(YT-yl)/(y2-yl);)

這里:LEFT=000KRIGHT=0010.BOTTOM=0100.TOP=1000

Cohen-Sutherland算收

Cohen-Sutherland算收

□用編碼方法實(shí)現(xiàn)了對(duì)完全可見(jiàn)和不可見(jiàn)直線

段的快速接受和拒絕;

□求交過(guò)程復(fù)雜,有冗余計(jì)算,并且包含浮點(diǎn)

運(yùn)算,不利于硬件實(shí)現(xiàn)。

100

中點(diǎn)臺(tái)制算位

□中點(diǎn)分割算法的

核心思想是通過(guò)

二分逼近來(lái)確定

直線段與窗口的

交占八、、。

101

中豆今制算該

口基本思想

是Cohen-Sutherland算法的改進(jìn),為了避免使用乘除法求

直線段與窗口邊界的交點(diǎn),用不斷對(duì)分線段的方法排斥線段

在窗口外的部分,最后求出離線段端點(diǎn)最遠(yuǎn)的可見(jiàn)點(diǎn)(所謂可

見(jiàn)點(diǎn)就是線段落在窗口內(nèi)的點(diǎn)),若這兩點(diǎn)存在,則這兩點(diǎn)就

是線段PiP2的可見(jiàn)線段端點(diǎn)。出口圖:A、B分另U為笈巨pi、p2最

近的可見(jiàn)點(diǎn),Pg為P〃2中點(diǎn)。

中點(diǎn)臺(tái)制算位

首先對(duì)線段端點(diǎn)進(jìn)行編碼,并把線

段與窗口的關(guān)系分為三種情況:

①線段PR2全在窗口內(nèi),保留;

②線段PR2完全在窗口外,不保留;

③線段和窗口有交,用中點(diǎn)分割的

方法求出線段與窗口的交點(diǎn)。

■用中點(diǎn)分割的方法

將線段等分為二段,作①、②、

③處理。直至每條線段要么完全在

窗口內(nèi),要么完全在窗口外為止。

求從々出發(fā)尋找最遠(yuǎn)的可見(jiàn)點(diǎn)的步驟:

設(shè):線段的端點(diǎn)在窗口內(nèi)稱(chēng)為可見(jiàn)點(diǎn),其區(qū)域碼為

0000。

(1)測(cè)試2是否在窗口內(nèi)。若是,則22就是離々最遠(yuǎn)的

可見(jiàn)點(diǎn),結(jié)束;否則,進(jìn)行下一步。

(2)對(duì)夕1、片的區(qū)域碼作邏輯與,若結(jié)果不為0,表明

P、、片是在窗外同側(cè),線段乙4全部不可見(jiàn),棄之,結(jié)

束;否則,進(jìn)行下一步。

(3)取尸14的中點(diǎn)4((XI+X2)/2,(yi+yP/2),若《可見(jiàn),

則以代替尸1,重復(fù)步驟(3);若乙不可見(jiàn),則需要判斷乙和

尸2的關(guān)系:

?如果乙和鳥(niǎo)在窗口的同側(cè)外面(即月〃、尸2的區(qū)域碼邏

輯與不為0),則4代替尸2,重復(fù)步驟(3);

?如果乙和鳥(niǎo)不在窗口的同側(cè)外面(即以、鳥(niǎo)的區(qū)域碼

邏輯與為0),則4代替尸],重復(fù)步驟(3);

(4)一直

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論