電腦基礎知識計算機圖形學chap6 二維變換及二維觀察_第1頁
電腦基礎知識計算機圖形學chap6 二維變換及二維觀察_第2頁
電腦基礎知識計算機圖形學chap6 二維變換及二維觀察_第3頁
電腦基礎知識計算機圖形學chap6 二維變換及二維觀察_第4頁
電腦基礎知識計算機圖形學chap6 二維變換及二維觀察_第5頁
已閱讀5頁,還剩142頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

ECUST

計算機■移孽基磁

華東理工人學必算機祭?謝屹玲

第力*二箱曖換及二瓶機塞

□如何對二維圖形進行方向、尺寸和形狀方面的

變換。

□如何進行二維觀察。

2

二瓶變換及二橫機察

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

口二維圖形幾何變換的計算

口復合變換

口變換的性質

3

6.2基4幾何麥換

□圖形的幾何變換

■平移、旋轉、縮放、反射和錯切

■變換的組合

□圖形幾何變換的目的

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

□基本幾何變換

都是相對于坐標原點和坐標軸進行的幾何變換。

4

6-2齊次全標

口齊次坐標

將一個原本是〃維的向量用一個〃+i維向量來表示。

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

例,…,Hxn,由,其中跟一個不為。的實數。

■省1的齊次坐標稱為規(guī)范化齊次坐標;

■反之:由點或向量的齊次坐標(〃入1,〃巧,…,Hxn,

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

〔=例Hx[H

x/H,???xn=

□齊次坐標表示法的優(yōu)點

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

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

口齊次坐標表示就是用n+1維向量表示一個n維向量。

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

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

6

7.2二瓶幾何變換的齊決坐標表東

口恒等變換

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

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

1oo

心。=|010

001

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

□平移是指將P點沿直線路徑從一個坐標位置移

到另一個坐標位置的重定位過程。

x'=x+7

x

圖6-1平移變換

8

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

-100

設:P'=[/y,l]=[xy1]010

TxTy1

令:T(&7p=[1001

010

工Ty1

記:P'=P*T(&Q

&4稱為平移矢量。

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

□比例變換是指對p點相對于坐標原點沿X方向放

縮5x倍,沿y方向放縮5y倍o其中5乂和Sy稱為

比例系數。%'=S,-X

V=s-

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

10

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

矩陣形式:「S.00

設:P'=[/y,1]=[xy1]0Sy0

_001.

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

0多0

-001-

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

S『,歷稱為比例系數。

11

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

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

圖6-3比例變換

基洋幾何變換一叱例變換

整體比例變換:

100

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

005

當S>1,圖形整體縮小;當S<1,圖形整體放大。

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

□二維旋轉是指圈P點繞坐標原點轉動某個角度(逆時

針為正,順時針為負)得到新的點p'的重定位過程。

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旋轉變換

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

口矩陣形式:逆時針旋轉e角

cosOsinO1

設:P、=[x'y'l]=[xy1]-sinOcosO0

[001

令:R(。)=cosOsinG1

-sinOcosO0

001

記:P'=P*R(8)

15

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

X

T1=Fab]比例、旋轉、對稱、錯切等;

cd;_ax+cy+1

T2=[jm]平移X

T3=p]投影px+qy+s

q_bx+dy+m

T4=\S]整體匕匕傷]

基井幾何曖換----對稱變換

□對稱變換后的圖形是原圖形關于某一軸線或

原點的鏡像。?

A

(a)關于x軸對稱(c)關于原點對稱

17

基洋幾何曖族----對稱變換

(d)關于x=y對稱

18

基4幾何變換—對繇變換

(1)關于X軸對稱▲

?P(x,y)

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

X

||0)/

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

[p/曲1j

圖6-6關于x軸對稱

19

基洋幾何曖族----對稱變換

(2)關于y軸對稱f

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

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

001

圖6-6關于y軸對稱

基井幾何曖換----對稱變換OF

(3)關于原點對稱A

A?P(x,y)

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

0-10

001

圖6-6關于原點對稱

21

基井幾何曖換----對稱變換

(4)關于y=x軸對稱

「。10]

100

001

圖6-6關于x=y對稱

基井幾何曖換----對稱變換

(5)關于丫=-x軸對稱

A

-0-10P(x,y)

-100

P'(%x)\X

001

圖6-6關于x=-y對稱

23

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

口錯切變換,也稱為剪切、錯位變換,用于產

生彈性物體的變形處理。

圖6-7錯切變換

24

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

①沿X方向關于Y軸的錯切

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

切角e,點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方向錯切

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

②沿Y方向關于X軸的錯切

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

角0,點(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方向錯切

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

③沿兩個方向的錯切

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方向錯切

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

其變換矩陣為:「1b0-

c10

001

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

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

(3)兩個方向錯切:bwO,cwO

28

二箍圖形幾何變換的計算

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

1.點的變換

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

復合麥換

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

次變換矩陣的乘積。

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

變換的組合形式。

□復合變換具有形式:

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

=PTfT2T3...Tn(n>l)

32

復合曖換----二推復合不移

100100

010010

,工2

Ty2

TX1,1Tx2,1

100

010

T,十+T1

X1x2V2

33

復合曖換----二推復合比例

1

Sx1I0o]「Sx200

、?、=*、

Ts=Ts1Ts20s,00sy20

001001

I

sx1?sx2,00

0S-S.0

y1y2

001

34

復合曖換----二推復合族挎

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

復合變換

cos0sin00-)「cos0oonritgeon

R=-sincos00=0cos00--tg010

001J|_001J|_001

itgeoqrcoso0o-

-tg3100cos00

001001

旋轉變換等價于先比例后錯切,或者先錯切后比例。

36

復合變換

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

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

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

交換律。

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

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

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

Ay

可以交換。

相對低一參考點的二推幾何變換OF

□相對某個參考點(XF,F)作二維幾何變換,其變

換過程為:

(1)平移;

(2)針對原點進行二維幾何變換;

(3)反平移。

38

相對低一參考點的二推幾何變換

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

記:

010000

y0010Sy0

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

2.圍繞任一基準點的旋轉變換

,(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

相對值一參考點的二箍率

例工錯切變換

矩形片44〃沿X軸、Y軸雙向錯切儀

*

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

100110100111010

010210010二21Q

Q鳥x

111001-1-11211①

--

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

3-11210331

-141211941

34113Y1

相對低一參考點的二推幾何變換

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

設△尸3的三個頂點分別為:

尸1(10,20),

鳥(20,20),

乙(15,30),

它繞點0(5,25)逆時針方向旋轉30。。它的復合變換

由如下三種變換組成:

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

25,平移變換矩陣為:100

4=010

-5-251

相對低一參考點的二推幾何變換

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

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

100

4=01o

-5-251

相對低一參考點的二推幾何變換

(2)繞原點逆時針旋轉30

變換后的1/2產3。

cos30°sin3O°

4=-sin3O°cos30°

00

相對低一參考點的二推幾何變換

(3)最后修。點移回原來位置。(5,25),平移變換矩陣為

T3,旋轉變換后的△尸*1卜2#*3。

100

010

5251

相對值意方向的二罐幾何要換

□相對任意方向作二維幾何變換,其變換的過

程是:

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

(2)針對坐標軸進行二維幾何變換;

(3)反向旋轉,回到原來的方向。

46

①I:平移(0,-Ty),使L過坐標原點,圖形A變換為A1

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

③RFx:圖形A2關于X軸的對稱圖形A3

@R2:旋轉e,圖形A3變換為A4

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

此時,是A關于L的對稱圖形。

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

對任意直線的對稱變換

設:直線的方程為:ax+by+c=0

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

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

⑴讓直線沿X軸方向平移c/a,使其通過坐標系原點。

變換矩陣為:

100

Tl=010

c/a01

⑵讓直線繞坐標系原點旋轉-a角,

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

cosa-since0

T2=sinacosa0

001

(3)由于原直線已與X軸重合,于是對于直線的對稱

變換即為對于X軸的對稱變換。變換矩陣為:

100

T3=0-10

001

(4)繞原點旋轉a角,使直線恢復到原傾斜位置。

變換矩陣為:八

cosasma。

T4=-sinacosa°

001

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

變換矩陣為:

100

T5=010

-c/a01

綜合以上的五步,對任意直線的對稱

變換過程為:

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

=[xy1]*T

組合變換矩陣T為:

'cos2asin2a0

T=sin2a-cos2a0

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

y

相對值意方向的二罐幾何要換

□例相對直線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

復合變換

例將正方形ABCO各點沿下圖所示的

(0,0)-(1,1)方向進行拉伸(比例變換),結

果為如圖所示的,寫出其變換矩陣和變換過程。

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

坐標系之間的變換

問題:已知XOY坐標系上的P(Xp,yp),求P轉換到

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

圖6-9坐標系間的變換

58

坐標系之間的變換

分析:

在xoy坐標系中有點p*,其y▲

坐標與p點在x,o,y,坐標系下P.也即p'

y

的坐標相等:X

5

op/=opx;*

Opg*Px

OPy*=O'Py;y□e

則P*點的坐標是P點變換到P9O'(xo,yo)

點的坐標。

o*X

圖6To坐標系間的變換的原理

59

圖6T4坐標系間的變換的步驟

于是:

p'-xfyf1-xy1-T

LppPP

-p-T-p-T-T

tR

-100cos0-sin0

T=Tt-Tr=010?sin3cos00

1001

光柵變換

□直接對幀緩存中象素點進行操作的變換稱為光

柵變換。

□光柵平移變換:

tsi

,★

(a)讀出象素塊的內容(b)復制象素塊的內容(c)擦除原象素塊的內容

圖6-12光柵平移變換62

光柵變換

□90°、180°和270。的光柵旋轉變換:

(vollen-y,x)

yvo

(r(wlen-x,vollen-y)

^vollen

row1en

(a)逆時針旋轉90°(b)逆時針旋轉180°

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

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

圖6-13光柵旋轉變換63

64

光柵變換

圖6-15光柵比例變換

根據Sx和Sy的大小,取出對應于變換后圖像中的一個像素點的原圖

中的相應像素區(qū)域,對其區(qū)域的像素點的亮度加權平均,得變換后

像素的亮度。

變換的轆質

二維仿射變換是具有如下形式的二維坐標變換:

x'=ax+by+m

<

y'-ex+dy+n

□平移、比例、旋轉、錯切和反射等變換均是二

維仿射變換的特例,反過來,任何常用的二維

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

66

變換的轆質

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

和長度的不變性;

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

口錯切變換引起圖形角度關系的改變,甚至導致

圖形發(fā)生畸變。

67

二箍理察

□基本概念

□二維觀察變換

□二維裁剪

□OpenGL中的二維觀察

68

二箍理察

□坐標系

鼻模坐標系(MC,ModelingCoordinateSystem)

用戶坐標系(WC,WorldCoordinateSystem)

I直角坐標系(又稱笛卡爾坐標系)

坐標系["極坐標系

觀察坐標系(VC,ViewingCoordinateSystem)

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

System)

設備坐標系(DC,DeviceCoordinateSystem)

二箍理察

□坐標系

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

依據物體而建的局部坐標系,是直角右手坐

標系,長度單位用戶自定,取值范圍整個實數

域。

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

又稱用戶坐標系,場景采用的坐標系,是直

角右手坐標系,長度單位用戶自定,取值范圍

整個實數域。

二箍理察

□坐標系

3.設備坐標系(DC,DeviceCoordinates)

依設備而定的坐標系,是二維直角坐標系,原點和軸

的定義依設備不同而不同,長度單位是設備的步距,取

值范圍有限的整數。

4.規(guī)格化設備坐標系(NDC,NormalizedDeviceCoordinates)

_一種虛擬的坐標系,與具體設備無關,其取值范圍在

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

用戶的繪圖數據經過轉換成NDC中的值,使得圖形有

了統(tǒng)一的設備空間。這對圖形的統(tǒng)一處理,帶來很大的

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

二箍理察

□坐標系gDC

MC、WC、NDC、DC之間的轉換

X

MC

圖二維場景從模型坐標系到設備坐標系的變換序列

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

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

口窗口

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

□視區(qū)

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

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

口開窗口

先將圖形關于窗口進行裁剪,然后將裁剪后的保留在窗口

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

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

變換。

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

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

□要將窗口內的圖形在視區(qū)中顯示出來,必須經過將窗口到

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

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

Transformation)。

74

圖6-17用戶坐標系中旋轉的窗口

3

Q

N

1

視區(qū)

1xNDC

(a)觀察坐標系(b)規(guī)格化設備坐標系

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

□觀察坐標系(ViewCoordinate)是依據窗口的方

向和形狀在用戶坐標平面中定義的直角坐標系O

□規(guī)格化設備坐標系(NormalizedDevice

Coordinate)也是直角坐標系,它是將二維的設

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

1.0)的坐標范圍內形成的。

76

二箍機察----基存概念

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

察變換分為如下圖所示的幾個步驟,通常稱為

二維觀察流程。

觀窗口到視

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

標區(qū)(規(guī)范

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

VC對VC化設備坐NDC

的觀察坐標系到設斗設備上

進標系中定

戶標系間備坐標系輸出

剪義)的變

標的變換的變換

圖6-19二維觀察流程

77

二旗機察----基4就念

□變焦距效果

(b)與窗口對應

的視區(qū)1

(a)原圖及變化的窗口

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

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

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

78

二旗機察----基4就念

□整體放縮效果

(b)視區(qū)1

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

口漫游效果

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

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

79

用戶生標東?!也零坐標東的變換

□用戶坐標系到觀察坐標系的變換分由兩個變

換步驟合成:

?平移:將觀察坐標系原點移動到用戶坐標

80

用戶生標東?!也零坐標東的變換

?旋轉:繞原點旋轉使兩坐標系重合

/k

Xk

(b)旋轉變換

81

用戶生標系割視察坐標東的麥族

假設觀察坐標系的原點在用戶坐標系中的坐

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

夾角為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)。

窗口制祝成的變換

要求畫面相對比例保持不變。

窗口內點&亞,yw)映射到視區(qū)(xv,yv),應滿足:

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

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

窗口割視成的變換

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

Xvvmin

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

簡化:Xv=A-xw+B

Yv=C-yw+D

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

B-Xvmin一xwnun"A

ywiniJ

C=(Yvmax-yvmin)/^wmax

DorninYwmin式

窗口割視成的變換

□將窗口內的點(Xw,。)映射到相對應的視區(qū)內的點

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

(1)4號窗口左下角點移至用戶系統(tǒng)系的坐標原點,平移矢量

為(-Xwl,-Ywb),

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

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

s

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

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

Yvb)0

86

窗口割視成的變換

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

N=T

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

=A0O-

0C0

/這里:A、C稱為比例因子,

_BD1.B、D稱為平移因子

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

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

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

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

/當則保持圖形變換

D二yvb-ywbcA=C=1,

前后大小保持不變。

口在二維觀察中,需要在觀察坐標系下對窗口進行

裁剪,即只保留窗口內的那部分圖形,去掉窗口

外的圖形。

口假設窗口是標準矩形,即邊與坐標軸平行的矩形,

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

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

□點(X,y)在窗口內,則滿足:Wx)<X<Wxr、

wyb<y<wyto

88

二旗直核段的栽噌

已知條件:

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

(2)直線段端點pip2的坐標值、1,1,々,丫2。

圖6.24直線段與窗口的3種關系89

Pz

X

圖6.25直線段與窗口邊界的2種交點

□實交點:直線段與窗口矩形邊界的交點;

口虛交點:處于直線段延長線或窗口邊界延長線上

的交點。

□直線裁剪的基本原理

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

2.對于部分裁剪的直線,應求出直線與窗口邊界的

交占-

八、、)

3.把從交點開始到邊界外的部分裁剪掉。

□常用裁剪算法

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

2.中點分割算法

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

91

Cohen-Sutherland算收

□基本思想

對于每條線段P1P2分為三種情況處理分為三種情況

處理:

1.若PR2完全在窗口內,則顯示該線段P』2簡稱“取

”之。

2.若PR2明顯在窗口外,則丟棄該線段,簡稱“棄

力之。

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

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

之。然后對另一段重復上述處理。

Cohen-Sutherland算收

□編碼

對于任一端點(x,y),根據其坐標所在的區(qū)域,

賦予一個4位的二進制碼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)判斷

裁剪一條線段時,先求出直線段端點火和Pz的編

碼codel和code2,然后:

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

Pi和P2完全在窗口內,則對直線段簡取之;

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

一位上同為1,Pi和P2完全在窗口外,則對直線段簡

棄之;

95

Cohen-Sutherland算收

(2)求交

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

邊界的交點。

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

序檢測P1的編碼CODEL根據值為1的編碼位確定

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

交點代替pL用新的P1P2重新計算;如果P1在窗口

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

96

Cohen-Sutherland算收

(2)求交

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

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

y=yl+k(x-xl);

②上邊界(y=ywb)>下邊界(丫=丫比)交點的計算:

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

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

97

Cohen-Sutherland算收

□計算線段Pl(xl,yl)P2(x2,口)與窗口邊界的交點,其區(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算收

□用編碼方法實現了對完全可見和不可見直線

段的快速接受和拒絕;

□求交過程復雜,有冗余計算,并且包含浮點

運算,不利于硬件實現。

100

中點臺制算位

□中點分割算法的

核心思想是通過

二分逼近來確定

直線段與窗口的

交占八、、。

101

中豆今制算該

口基本思想

是Cohen-Sutherland算法的改進,為了避免使用乘除法求

直線段與窗口邊界的交點,用不斷對分線段的方法排斥線段

在窗口外的部分,最后求出離線段端點最遠的可見點(所謂可

見點就是線段落在窗口內的點),若這兩點存在,則這兩點就

是線段PiP2的可見線段端點。出口圖:A、B分另U為笈巨pi、p2最

近的可見點,Pg為P〃2中點。

中點臺制算位

首先對線段端點進行編碼,并把線

段與窗口的關系分為三種情況:

①線段PR2全在窗口內,保留;

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

③線段和窗口有交,用中點分割的

方法求出線段與窗口的交點。

■用中點分割的方法

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

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

窗口內,要么完全在窗口外為止。

求從々出發(fā)尋找最遠的可見點的步驟:

設:線段的端點在窗口內稱為可見點,其區(qū)域碼為

0000。

(1)測試2是否在窗口內。若是,則22就是離々最遠的

可見點,結束;否則,進行下一步。

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

P、、片是在窗外同側,線段乙4全部不可見,棄之,結

束;否則,進行下一步。

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

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

尸2的關系:

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

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

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

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

(4)一直

溫馨提示

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

評論

0/150

提交評論