You are on page 1of 44

O HOA RASTER

CAC THUAT TOAN TO MAU

Giang vien : Bui Tien Len

Bai toan to mau


To mau la thao tac tm cac iem sang nam ben trong
mot vung khep kn.
Input :
Vung S
Output :
{(x1, y1), (x2, y2) (xn, yn)}

Trang 2

Cac hng tiep can


Co hai phng phap
- To mau theo lan can
- To mau theo dong quet

Trang 3

To mau theo lan can

Lan can la g ?
Co hai loai lan can : lan can 4 va lan can 8.
Lan can 4
N4(x, y) = {(x-1, y), (x, y+1), (x+1, y), (x, y-1)}
Lan can 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)}

tren
y

trai

(x,y) phai

trai
y

(x,y)

di
x

Trang 5

Thuat toan e qui


bc 1 Ke bien vung can to
bc 2 Xac nh mot iem (x, y) nam ben trong vung can
to
bc 3 To iem (x, y), sau o to loang sang nhng iem
lan can

x
Trang 6

Cai at 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);
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);
}
}

Trang 7

Nhan xet thuat toan e qui


u iem
Co the to vung co hnh dang
bat ky.

Khuyet iem
Khong the dung e to cac
vung co kch thc ln.

kch thc
!

Trang 8

Thuat toan cai tien


bc 1
Cat iem hat giong au tien vao kho.
bc 2
Lap neu kho khong rong
- c1 Lay iem hat giong.
- c2 To iem hat giong sau o to loang sang trai va
sang phai.
- c3 Bo sung nhng iem hat giong mi vao kho t
dong tren va dong di.

Trang 9

Thuat toan cai tien


hat giong : iem sang

kho : cha cac iem hat giong

Trang 10

Thuat toan cai tien


Minh hoa to loang

bien

bien

Trang 11

Thuat toan cai tien


Tieu chuan e la iem hat giong
1. iem nay cha c to va khong phai iem bien.
2. iem nay thoa :
- iem trai au tien.
- hoac ben trai cua no la iem bien (neu no khong
phai la iem trai au tien).

Trang 12

Thuat toan cai tien


Minh hoa bo sung nhng iem hat giong mi

bien

bien

hat giong
bien
bien

bien
Trang 13

To theo lan can - Mot so van e

S dung
lan can nao ?

Trang 14

To theo lan can - Mot so van e

ng bien
mau g ?

Trang 15

To theo lan can - Mot so van e

Trang 16

To mau theo dong quet

Khai niem dong quet


Dong quet la dong iem sang tren man hnh

Trang 18

To hnh ch nhat
l

y t
y
b

Trang 19

To hnh tam giac


Input
(X1, Y1), (X2, Y2), (X3, Y3)
Cach to
bc 1 : Sap xep cac nh
Y1 Y2 Y3
bc 2 : Phan trng hp
Theo tung o

Trang 20

To hnh tam giac


Y1 = Y2 = Y3

Y1 < Y2 = Y3
2

2
1

Y1 = Y2 < Y3

Y1 < Y2 < Y3
3

3
2
2

1
Trang 21

To hnh tam giac

Y1

Xmin

Xmax

To tam giac (Y1 = Y2 = Y3)


1. Tm Xmin, Xmax
2. To dong Y1 bat au tai cot Xmin, ket thuc tai cot Xmax

Trang 22

To hnh tam giac

Y2

y
y Y1

1
xl

To tam giac (Y1 < Y2 = Y3)


Lap y : Y1 Y2
1. Tm hoanh o giao iem xl, xr
gia dong quet y vi cac canh
trai va canh phai cua tam giac.
2. To dong y bat au tai cot xl, ket
thuc tai cot xr.

xr

Trang 23

To hnh tam giac


V du
Cac hoanh o giao iem cua cac dong quet vi canh
(2, 2), (11, 6).
6
5
4
3
2

1
8
4

17
4

26
4

35
4

44
4

Trang 24

To hnh tam giac


Cach tnh hoanh o giao iem

x au la X1
xmoi = xcu + k
vi
X2 X1
k=
Y2 Y1

Trang 25

To hnh tam giac


3

Y3

Y2

y Y1

Trang 26

To hnh a giac loi


p0
p3

p1
p2

p0
p1
pn-1
p2
pn-2

Cach to
1. Chia a giac loi co n nh
{p0, p1, ... , pn-1} thanh n-2
tam giac.
- 1 p0p1p2
- 2 p0p2p3
- ...
- i p0pipi+1
- ...
- n-2 p0pn-2pn-1
2. To tng tam giac.

p3

Trang 27

To hnh a giac
Nguyen ly chia tam giac
Moi a giac khong t cat eu co the phan chia thanh cac
tam giac.

Trang 28

Thu
Thu
t toan to a giac tong quat

Thuat toan

ymax
bc 1 Tm ymin va ymax
ymin = min{yi, (xi, yi) P}
y
ymax = max{yi, (xi, yi) P}
bc 2 To tng dong
Lap y : ymin ymax
c1 Tm cac giao iem.
c2 Sap xep cac giao iem. y ymin
c3 To cac oan thang.

I1

I2 I3

I4

Trang 30

Lu y
Bo canh nam ngang

bo
bo

Trang 31

Lu y
Dong quet i qua nh
b
d
a
y

I1
h

I2 I3

I4
Bnh thng
g

f
Trang 32

Lu y
Dong quet i qua nh
b
y
a

I1

Loi
I2 I3
c

I4

I5

f
g

Trang 33

Lu y
Cat bt canh c theo truc y 1 n v
b
1
y 1

I1

I2

I3

I4

f
g

Trang 34

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

7
6
5
4

2
1

i
1

f
3

Trang 35

Tien x ly 1
c

7
6
5
4

Loai bo cac canh


{c, f, i}

2
1

i
1

f
3

Trang 36

Tien x ly 2
9

7
6
5
4

X ly cac canh
{a, e}

1
1

Trang 37

To
9

k=1

k=-3/4

6
5
4

a
k=1/6

k=1/4

k=-1/2

k=0

1
1

Trang 38

Thong tin canh a giac


canh

ylower

yupper

xlower

1/6

-3/4

-1/2

1/4

Trang 39

Thong tin cac canh a giac


canh

ylower

yupper

xlower

1/6

-3/4

-1/2

1/4

Trang 40

Phng trnh oan thang


F(x, y) = (Y2 Y1)(x X1) (X2 X1)(y Y1)

(X2,Y2)

(X1,Y1)

Trang 41

Xac nh ben trong tam giac nh the nao ?


(X3,Y3)

(X2,Y2)

(X1,Y1)

Trang 42

Chieu cac nh cua tam giac


Tnh dien tch tam giac
x1(y 2 y3 ) + x 2 (y3 y1) + x3 (y1 y 2 )
S=
2
(X2,Y2)

(X2,Y2)

(X3,Y3)

(X3,Y3)

S>0

(X1,Y1)

(X1,Y1)

S<0

Trang 43

Thuat toan
1. Tm xmin, xmax, ymin, ymax
2. Lap y : ymin ymax, x : xmin xmax
Neu (x, y) nam ben trong tam giac th
To (x, y)
ymax

ymin
xmin

xmax

Trang 44

You might also like