Bài giảng đồ họa : Các thuật toán tô màu part 4 potx - Pdf 19

ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuật toán tô màu 13/16
T
TT
T
T
TT
T
h
hh
h
h
hh
h
u
uu
u
u
uu
u
a
aa
a
a
aa
a
ä
ää
ä
ä
ää

a
ù
ùù
ù
ù
ùù
ù
n
nn
n
n
nn
n
t
tt
t
t
tt
t
o
oo
o
o
oo

ø
u
uu
u
u
uu
u
t
tt
t
t
tt
t
h
hh
h
h
hh
h
e
ee
e
e
ee

ø
n
nn
n
n
nn
n
g
gg
g
g
gg
g
b
bb
b
b
bb
b
i
ii
i
i
ii

lân cận (hình a) hay 8 điểm lân cận (hình b).
• Cài đặt minh họa thuật toán tô màu theo đường biên
void BoundaryFill(int x, int y, int FillColor, int BoundaryColor)
{
int CurrenColor;
CurrentColor = getpixel(x,y);
if((CurrentColor!=BoundaryColor)&&CurrentColor!= FillColor))
{
putpixel(x,y,FillColor);
BoundaryFill(x-1, y, FillColor, BoundaryColor);
BoundaryFill(x, y+1, FillColor, BoundaryColor);
BoundaryFill(x+1, y, FillColor, BoundaryColor);
BoundaryFill(x, y-1, FillColor, BoundaryColor);
}
} // Boundary Fill
• Một số nhận xét
♦ Thuật toán có thể hoạt động không chính xác khi có một
số điểm nằm trong vùng tô có màu là màu cần tô của
vùng.
♦ Việc thực hiện đệ qui làm thuật toán không thể dùng cho
vùng tô lớn.
(a) (b)
ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuật toán tô màu 15/16
• Một cải tiến nhỏ : nhận xét rằng việc gọi thực hiện
đệ qui thuật toán cho 4 điểm lân cận của điểm hiện
hành không quan tâm tới một trong 4 điểm đó đã
được xét ở bước trước hay chưa. Ví dụ khi ta xét 4
điểm lân cận của (x, y), thì khi gọi thực hiện đệ qui
với điểm hiện hành là một trong 4 điểm trên, (x, y)

từng dòng.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status