Top Banner
ÑOÀ HOÏA RASTER ÑOÀ HOÏA RASTER CAÙC THUAÄT TOAÙN TOÂ MAØU CAÙC THUAÄT TOAÙN TOÂ MAØU Giaûng vieân : Buøi Tieán Leân
44

chuong_2a [Compatibility Mode].pdf

Jan 16, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: chuong_2a [Compatibility Mode].pdf

ÑOÀ HOÏA RASTERÑOÀ HOÏA RASTER

CAÙC THUAÄT TOAÙN TOÂ MAØUCAÙC THUAÄT TOAÙN TOÂ MAØU

Giaûng vieân : Buøi Tieán Leân

Page 2: chuong_2a [Compatibility Mode].pdf

Baøi toaùn toâ maøuBaøi toaùn toâ maøuToâ maøu laø thao taùc tìm caùc ñieåm saùng “naèm beân trong” moät vuøng kheùp kín.Input :

Vuøng SOutput :

{(x1, y1), (x2, y2) … (xn, yn)}

Trang Trang 22

{(x1, y1), (x2, y2) … (xn, yn)}

Page 3: chuong_2a [Compatibility Mode].pdf

Caùc höôùng tieáp caänCaùc höôùng tieáp caänCoù hai phöông phaùp - Toâ maøu theo laân caän- Toâ maøu theo doøng queùt

Trang Trang 33

Page 4: chuong_2a [Compatibility Mode].pdf

Toâ maøu theo laân caänToâ maøu theo laân caän

Page 5: chuong_2a [Compatibility Mode].pdf

Laân caän laø gì ?Laân caän laø gì ?Coù hai loaïi laân caän : laân caän 4 vaø laân caän 8.Laân caän 4

N4(x, y) = {(x-1, y), (x, y+1), (x+1, y), (x, y-1)}Laân caän 8

N8(x, y) = {(x-1, y), (x-1, y+1), (x, y+1), (x+1, y+1), (x+1, y), (x+1, y-1), (x, y-1), (x-1, y-1)}

Trang Trang 55

(x,y) phaûitraùi

döôùi

treân

x

y (x,y)

x

y

traùi

Page 6: chuong_2a [Compatibility Mode].pdf

Thuaät toaùn ñeä quiThuaät toaùn ñeä quiböôùc 1 Keû bieân vuøng caàn toâböôùc 2 Xaùc ñònh moät ñieåm (x, y) naèm beân trong vuøng caàn toâböôc 3 Toâ ñieåm (x, y), sau ñoù toâ loang sang nhöõng ñieåm laân caän

Trang Trang 66x

y

Page 7: chuong_2a [Compatibility Mode].pdf

Caøi ñaët ñeä quiCaøi ñaët ñeä qui// To loang

void BoundaryFill(CDC *pDC, int x, int y,

int fill_color, int boundary_color)

{

int color;

color = pDC->GetPixel(x, y);

if((color != fill_color) && (color != boundary_color))

{

pDC->SetPixel(x, y, fill_color);

Trang Trang 77

pDC->SetPixel(x, y, fill_color);

BoundaryFill(pDC, x-1, y, fill_color, boundary_color);

BoundaryFill(pDC, x, y+1, fill_color, boundary_color);

BoundaryFill(pDC, x+1, y, fill_color, boundary_color);

BoundaryFill(pDC, x, y-1, fill_color, boundary_color);

}

}

Page 8: chuong_2a [Compatibility Mode].pdf

Nhaän xeùt thuaät toaùn ñeä quiNhaän xeùt thuaät toaùn ñeä quiÖu ñieåm

Coù theå toâ vuøng coù hình daïng baát kyø.

Khuyeát ñieåmKhoâng theå duøng ñeå toâ caùc

vuøng coù kích thöôùc lôùn.

Trang Trang 88

kích thöôùc !

Page 9: chuong_2a [Compatibility Mode].pdf

Thuaät toaùn caûi tieánThuaät toaùn caûi tieánböôùc 1

Caát ñieåm haït gioáng ñaàu tieân vaøo kho.böôùc 2

Laëp neáu kho khoâng roãng- c1 Laáy ñieåm haït gioáng.- c Toâ ñieåm haït gioáng sau ñoù toâ loang sang traùi vaø

Trang Trang 99

- c2 Toâ ñieåm haït gioáng sau ñoù toâ loang sang traùi vaø sang phaûi.

- c3 Boå sung nhöõng ñieåm haït gioáng môùi vaøo kho töø doøng treân vaø doøng döôùi.

Page 10: chuong_2a [Compatibility Mode].pdf

Thuaät toaùn caûi tieánThuaät toaùn caûi tieánhaït gioáng : ñieåm saùng

kho : chöùa caùc ñieåm haït gioáng

Trang Trang 1010

Page 11: chuong_2a [Compatibility Mode].pdf

Thuaät toaùn caûi tieánThuaät toaùn caûi tieán

bieân bieân

Minh hoïa toâ loang

Trang Trang 1111

Page 12: chuong_2a [Compatibility Mode].pdf

Thuaät toaùn caûi tieánThuaät toaùn caûi tieánTieâu chuaån ñeå laø ñieåm haït gioáng

1. Ñieåm naøy chöa ñöôïc toâ vaø khoâng phaûi ñieåm bieân.2. Ñieåm naøy thoaû :

- Ñieåm traùi ñaàu tieân.- hoaëc beân traùi cuûa noù laø ñieåm bieân (neáu noù khoâng

phaûi laø ñieåm traùi ñaàu tieân).

Trang Trang 1212

phaûi laø ñieåm traùi ñaàu tieân).

Page 13: chuong_2a [Compatibility Mode].pdf

Thuaät toaùn caûi tieánThuaät toaùn caûi tieán

bieân bieân

Minh hoïa boå sung nhöõng ñieåm haït gioáng môùi

Trang Trang 1313

bieân bieân

bieân

haït gioáng

Page 14: chuong_2a [Compatibility Mode].pdf

Toâ theo laân caän Toâ theo laân caän -- Moät soá vaán ñeàMoät soá vaán ñeà

Söû duïng laân caän naøo ?

Trang Trang 1414

Page 15: chuong_2a [Compatibility Mode].pdf

Toâ theo laân caän Toâ theo laân caän -- Moät soá vaán ñeàMoät soá vaán ñeà

Ñöôøng bieânmaøu gì ?

Trang Trang 1515

Page 16: chuong_2a [Compatibility Mode].pdf

Toâ theo laân caän Toâ theo laân caän -- Moät soá vaán ñeàMoät soá vaán ñeà

Trang Trang 1616

Page 17: chuong_2a [Compatibility Mode].pdf

Toâ maøu theo doøng queùtToâ maøu theo doøng queùt

Page 18: chuong_2a [Compatibility Mode].pdf

Khaùi nieäm doøng queùtKhaùi nieäm doøng queùtDoøng queùt laø doøng ñieåm saùng treân maøn hình

y

Trang Trang 1818

y

Page 19: chuong_2a [Compatibility Mode].pdf

Toâ hình chöõ nhaätToâ hình chöõ nhaät

l r

ty

Trang Trang 1919

b

y

Page 20: chuong_2a [Compatibility Mode].pdf

Toâ hình tam giaùcToâ hình tam giaùcInput

(X1, Y1), (X2, Y2), (X3, Y3)

Caùch toâ

böôùc 1 : Saép xeáp caùc ñænhY ≤ Y ≤ Y

Trang Trang 2020

Y1 ≤ Y2 ≤ Y3

böôùc 2 : Phaân tröôøng hôïpTheo tung ñoä

Page 21: chuong_2a [Compatibility Mode].pdf

Toâ hình tam giaùcToâ hình tam giaùc

Y1 = Y2 = Y3

1 3 2

Y1 < Y2 = Y3

1

2 3

Trang Trang 2121

Y1 = Y2 < Y3

12

3

Y1 < Y2 < Y3

1

2

3

Page 22: chuong_2a [Compatibility Mode].pdf

Toâ hình tam giaùcToâ hình tam giaùc

1 3 2Y1

X X

Trang Trang 2222

Toâ tam giaùc (Y1 = Y2 = Y3)1. Tìm Xmin, Xmax

2. Toâ doøng Y1 baét ñaàu taïi coät Xmin, keát thuùc taïi coät Xmax

Xmin Xmax

Page 23: chuong_2a [Compatibility Mode].pdf

Toâ hình tam giaùcToâ hình tam giaùc

Toâ tam giaùc (Y1 < Y2 = Y3)Laëp y : Y1 … Y2

1. Tìm hoaønh ñoä giao ñieåm xl, xrgiöõa doøng queùt y vôùi caùc caïnh

2 3Y2

y

Trang Trang 2323

l rgiöõa doøng queùt y vôùi caùc caïnh traùi vaø caïnh phaûi cuûa tam giaùc.

2. Toâ doøng y baét ñaàu taïi coät xl, keát thuùc taïi coät xr.1

Y1y

y

xl xr

Page 24: chuong_2a [Compatibility Mode].pdf

Toâ hình tam giaùcToâ hình tam giaùcVí duï

Caùc hoaønh ñoä giao ñieåm cuûa caùc doøng queùt vôùi caïnh (2, 2), (11, 6).

654

2

Trang Trang 2424

5432

1

84

174

264

354

444

Page 25: chuong_2a [Compatibility Mode].pdf

Toâ hình tam giaùcToâ hình tam giaùc

12

cumoi

1

XXk

vôùi

kxx

X laø ñaàu x

ñieåm giao ñoä hoaønh tính Caùch

−=

+=

1

2

Trang Trang 2525

12

12

YYk

−= 1

Page 26: chuong_2a [Compatibility Mode].pdf

Toâ hình tam giaùcToâ hình tam giaùc

2

3

Y2

Y3

Trang Trang 2626

1Y1y

Page 27: chuong_2a [Compatibility Mode].pdf

Toâ hình ña giaùc loàiToâ hình ña giaùc loài

Caùch toâ1. Chia ña giaùc loài coù n ñænh

{p0, p1, ... , pn-1} thaønh n-2 tam giaùc.- ∆1 p0p1p2

- ∆ p p p

p0

p1

p2

p3

Trang Trang 2727

- ∆2 p0p2p3

- ...- ∆i p0pipi+1

- ...- ∆n-2 p0pn-2pn-1

2. Toâ töøng tam giaùc.

p1

p2

p3

pn-2

pn-1

p0

Page 28: chuong_2a [Compatibility Mode].pdf

Toâ hình ña giaùcToâ hình ña giaùcNguyeân lyù chia tam giaùc

Moïi ña giaùc khoâng töï caét ñeàu coù theå phaân chia thaønh caùc tam giaùc.

Trang Trang 2828

Page 29: chuong_2a [Compatibility Mode].pdf

ThuThuậật toaùn toâ ña giaùc toång quaùtt toaùn toâ ña giaùc toång quaùt

Page 30: chuong_2a [Compatibility Mode].pdf

Thuaät toaùnThuaät toaùn

böôùc 1 Tìm ymin vaø ymax

ymin = min{yi, (xi, yi) ∈ P}ymax = max{yi, (xi, yi) ∈ P}

böôùc 2 Toâ töøng doøng

ymax

yI1 I2 I3 I4

P

Trang Trang 3030

böôùc 2 Toâ töøng doøngLaëp y : ymin … ymax

c1 Tìm caùc giao ñieåm.c2 Saép xeáp caùc giao ñieåm.c3 Toâ caùc ñoaïn thaúng.

ymin

P

y

Page 31: chuong_2a [Compatibility Mode].pdf

Löu yùLöu yùBoû caïnh naèm ngang

Trang Trang 3131

boû

boû

Page 32: chuong_2a [Compatibility Mode].pdf

Löu yùLöu yùDoøng queùt ñi qua ñænh

a

b

cd

e

Trang Trang 3232

a c e

f

g

h

I1 I2 I3 I4

Bình thöôøng

y

Page 33: chuong_2a [Compatibility Mode].pdf

Löu yùLöu yùDoøng queùt ñi qua ñænh

a

b

cd

eI1 I2 I3 I4 I5

Loãi

y

Trang Trang 3333

a c e

f

g

h

I1 I2 I3 I4 I5

Page 34: chuong_2a [Compatibility Mode].pdf

Löu yùLöu yùCaét bôùt caïnh c theo truïc y 1 ñôn vò

a

b

cd

eI1 I2 I3 I41y

1

Trang Trang 3434

a c e

f

g

h

I1 I2 I3 I4

Page 35: chuong_2a [Compatibility Mode].pdf

Ví duïVí duï

6

7

8

9b

c

d

{(1, 1) (2, 7) (4, 9) (7, 9) (9, 5) (9, 1) (7, 1) (5, 5) (4, 1)}

Trang Trang 35351 2 3 4 5 6 7 8 9

1

2

3

4

5

6

a

e

f

gh

i

Page 36: chuong_2a [Compatibility Mode].pdf

Tieàn xöû lyù 1Tieàn xöû lyù 1

6

7

8

9b

d

Loaïi boû caùc caïnh

c

Trang Trang 36361 2 3 4 5 6 7 8 9

1

2

3

4

5

6

a

egh

Loaïi boû caùc caïnh{c, f, i}

fi

Page 37: chuong_2a [Compatibility Mode].pdf

Tieàn xöû lyù 2Tieàn xöû lyù 2

6

7

8

9b

d

Trang Trang 37371 2 3 4 5 6 7 8 9

1

2

3

4

5

6

Xöû lyù caùc caïnh{a, e}a

egh

Page 38: chuong_2a [Compatibility Mode].pdf

ToâToâ

6

7

8

9b

dk=1

k=-3/4

Trang Trang 38381 2 3 4 5 6 7 8 9

1

2

3

4

5

6

a

egh

k=1/6

k=0k=-1/2k=1/4

Page 39: chuong_2a [Compatibility Mode].pdf

Thoâng tin caïnh ña giaùcThoâng tin caïnh ña giaùc

caïnh ylower yupper xlower k

a 1 7 1 1/6

b 7 9 2 1

d 5 9 9 -3/4

e 1 5 9 0

g 1 5 7 -1/2

Trang Trang 3939

g 1 5 7 -1/2

h 1 5 4 1/4

Page 40: chuong_2a [Compatibility Mode].pdf

Thoâng tin caùc caïnh ña giaùcThoâng tin caùc caïnh ña giaùc

caïnh ylower yupper xlower k

a 1 6 1 1/6

b 7 9 2 1

d 5 9 9 -3/4

e 1 4 9 0

g 1 5 7 -1/2

Trang Trang 4040

g 1 5 7 -1/2

h 1 5 4 1/4

Page 41: chuong_2a [Compatibility Mode].pdf

Phöông trình ñoaïn thaúngPhöông trình ñoaïn thaúngF(x, y) = (Y2 – Y1)(x – X1) – (X2 – X1)(y – Y1)

(X2,Y2)

Trang Trang 4141

(X1,Y1)

Page 42: chuong_2a [Compatibility Mode].pdf

Xaùc ñònh beân trong tam giaùc nhö theá naøo ? Xaùc ñònh beân trong tam giaùc nhö theá naøo ?

(X3,Y3)

Trang Trang 4242(X1,Y1)

(X2,Y2)

Page 43: chuong_2a [Compatibility Mode].pdf

Chieàu caùc ñænh cuûa tam giaùcChieàu caùc ñænh cuûa tam giaùcTính dieän tích tam giaùc

(X2,Y2) (X2,Y2)

( ) ( ) ( )

2yyxyyxyyx

S 213132321 −+−+−=

Trang Trang 4343

S>0 S<0(X1,Y1)

(X3,Y3)

(X1,Y1)

(X3,Y3)

Page 44: chuong_2a [Compatibility Mode].pdf

Thuaät toaùnThuaät toaùn1. Tìm xmin, xmax, ymin, ymax

2. Laëp y : ymin … ymax, x : xmin … xmax

Neáu (x, y) naèm beân trong tam giaùc thìToâ (x, y)

y

Trang Trang 4444xmin xmax

ymin

ymax