LOGO
BÁO CÁO ĐỀ TÀI
Nhóm 2 – Đại Học TinK2
ĐẠI HỌC SƯ PHẠM KỸ THUẬT VINH
KHOA CÔNG NGHỆ THÔNG TIN
THUẬT TOÁN TÔ MÀU THEO
ĐƯỜNG BIÊN & DÒNG QUÉT
LOGO
Nội dung trình bày
1
2
!"#$
3
%&'
5
4
!()*+
44
4
LOGO
Nhóm 2 – Đại Học TinK2
Lời nói đầu
,-./012
.3415!657189
203:17 #1116 11#)
; .< 5= > 1 ? #
=1'@AB1C
D E . ! F) G+
3415!762.1.H920
2 1 I J1 K 1 #L1 11 #
LI:1B1MBD12'G
N #L1 ? 9 1 ' #
..@
LOGO
46 O1 P D 5. #L1 /
5Q1 1R :I I 2 2 2S
1JT5U11#LI:1B"
/V..C101W.D
. ! # B . ! F)
G+ J1 K 11 # LI :1 B 1M B
.11R#11JT5U1Q
D 1 2' G 10 J1 BV
415!
Lời nói đầu
Nhóm 2 – Đại Học TinK2
LOGO
E/#L1O#FX1M/
.Y1@Z
W.D#X1##L1
[..#L1OIU2'W
1M11B=
[.J1\1.]^
Lời nói đầu
Nhóm 2 – Đại Học TinK2
LOGO
Nhóm 2 – Đại Học TinK2
Giới Thiệu Chung
1.Giới thiệu đề tài
1.Giới thiệu đề tài
[HF
1'1M.5
3.!#B7
.!F)G+
3%1_1F?57
(!.
`.!B
`.!F)G+
LOGO
Nhóm 2 – Đại Học TinK2
Giới Thiệu Chung
2.Tô màu là gì?
2.Tô màu là gì?
-
..H95/%.Z11M11D.N
V. 9 1 H 9 # O]1 J1
KBa.H#2+I20-5#B
(=#B]#:I51
bE1.#15.c1=
`;1KK011D.1.
` */' K 11 D. BV .
d=/NaI_1=I21!.H
.X1_2I.H.
-
de11'I110D."5.!
AD.31D-5]76.!F)
G+.FO!#B
LOGO
Nhóm 2 – Đại Học TinK2
Giới Thiệu Chung
$.1.#
b(?5 H.1_1111f1M1
.H V @ .156 .< I T . 5
.HB,.cIJ/
-
(?5"1Y#L1Ba. 15
LOGO
1.Bài toán đặt ra
1.Bài toán đặt ra
:
:
d..H9'B'#L1.1M#B9
.HD.V.B9
2. Ý tưởng :
2. Ý tưởng :
b HW1#L1J1KBV11#B61Q
I\ B # B 9 1 3B #
B7BVH10.Z1
b $Z A .H D. 3J6/7 Bg 2h 9 6 i
f6,5=-G/A11f1'2:I.
1M#B
bj:1BZA.HD.V.B962D.
11 D. 5\ 1 1M Y #L1 . .@ 6 /
D.5\11.9.B2k['1
#LI2IWND...@
*W/#L15:I5=1'221)#L1
?WFA3J!.W87
Thuật toán tô màu theo đường biên
Nhóm 2 – Đại Học TinK2
LOGO
Thuật toán tô màu theo đường biên
Nhóm 2 – Đại Học TinK2
LOGO
Thuật toán tô màu theo đường biên
Nhóm 2 – Đại Học TinK2
3.Giải thuật
3.Giải thuật
1!F! 3J6/615615B7l
bbbbb115m!IJ!53J6/7l
bbbbbno3115pq157rF3115pq15B7!
bbbbb$!
bbbbbbbbbbJ!53J6/6157l
bbbbbbbbbb 3Jb86/615615B7l
bbbbbbbbbb 3J`86/615615B7l
bbbbbbbbbb 3J6/b8615615B7l
bbbbbbbbbb 3J6/`8615615B7l
bbbbbsFl
t!l
LOGO
Thuật toán tô màu theo đường biên
Nhóm 2 – Đại Học TinK2
3.1 Nhận xét:
b1F9G/F1D\/
12'9G56.:21Bg2hD.
3J6/7 1R I - M C1 i D. J
G.:1F91D11D.Y#L1
b1D210J121.H@D.
V.91.5.11M9
b E1 O1 - G 5. 2 D T
FC1953127
bdD2Z1IC1112BV11.@5
-G&aD. 3J6/75 D. 1K0 :1 B
966-G11D.5\11M3J6/7
3J!.W87
LOGO
Thuật toán tô màu theo đường biên
Nhóm 2 – Đại Học TinK2
4.Cài đặt minh họa:
4.Cài đặt minh họa:
4.1 Cài đặt minh họa thuật toán 4 liên thông:
4.1 Cài đặt minh họa thuật toán 4 liên thông:
1!F!$F/uo553J6/6.6.B!!!7l
.u!!l
B!
.um!IJ!53J6/7l
o3.upq.7F3.upq.B!7!
B!
IIJ!53J6/6157l
$F/uo553J`86/6.6.B!7l
$F/uo553Jb86/6.6.B!7l
$F/uo553J6/`86.6.B!7l
$F/uo553J6/b86.6.B!7l
!Fl
!Fl
LOGO
Thuật toán tô màu theo đường biên
Nhóm 2 – Đại Học TinK2
4.2 Minh họa thuật toán:
4.2 Minh họa thuật toán:
dWN#L1.#
LOGO
Thuật toán tô màu theo đường biên
Nhóm 2 – Đại Học TinK2
Ví dụ 1:
Ví dụ 1:Trong hình 3 ta có thể xét điểm (x,y) có tọa độ là (498,
200). Với điểm khởi đầu này thì chỉ cần xét 3 điểm lân cận là (x-1,y),
(x,y-1), (x,y+1). Khi đó thủ tục tô màu theo đường biên được viết lại
như sau :
1!F!$F/uo553J6/6.6.B!!!7l
.u!!l
$!
.um!IJ!53J6/7l
o3.upq.7F3.upq.B!7!
$!
IIJ!53J6/6157l
$F/uo553Jb86/6.6.B!7l
$F/uo553J6/`86.6.B!7l
$F/uo553J6/b86.6.B!7l
!Fl
!Fl
LOGO
Thuật toán tô màu theo đường biên
Nhóm 2 – Đại Học TinK2
Ví dụ 2:
Ví dụ 2:Trong hình 3, ta có thể xét điểm (x,y) có tọa độ là (102,
102). Với điểm khởi đầu này thì chỉ cần xét 2 điểm lân cận là
(x+1,y), (x,y+1).Khi đó thủ tục tô màu theo đường biên được viết
lại như sau:
1!F!$F/uo553J6/6.6.B!!!7l
.u!!l
B!
.um!IJ!53J6/7l
o3.upq.7F3.upq.B!7!
B!
IIJ!53J6/6157l
$F/uo553J`86/6.6.B!7l
$F/uo553J6/`86.6.B!7l
!Fl
!Fl
LOGO
Thuật toán tô màu theo đường biên
Nhóm 2 – Đại Học TinK2
Một cải tiến khác : không cài đặt đệ qui mà tô theo
từng dòng (xem hình 4).
LOGO
Thuật toán tô màu theo đường biên
Nhóm 2 – Đại Học TinK2
4.3 Đề xuất:
4.3 Đề xuất:
dQ N 5 5#L A= ! F) G+
/W!iD.5\1[#/1Q
1f15#5=111MD.BZ.<=
1MF)G+/W5#'g111D.
5\11##L1BaD.
dQN11F)G+562
J611F)G+1)5=!#J@N#L1
[#/6 .< D.3J6/7 1f 1 5# 5= @ c
D.F#3#LI9BKv5Mva?76
1) 2 1_ / 5 1 ' 2 :I .
#B6,5=1_/J@F#
LOGO
Thuật toán tô màu theo đường biên
Nhóm 2 – Đại Học TinK2
dcGD.11/"5F9iD.5\
131D-5i57/wD.5\13w
573J!.Wc7
LOGO
Tô Màu Theo Dòng Quét(Scan-line)
Nhóm 2 – Đại Học TinK2
1.Tìm hiểu về thuật toán:
1.Tìm hiểu về thuật toán:
#] II / N J1 K I 1M 11 F)
G+2''I#B1M946N
'.11D.H1I/
#]II/##L1F9D.1
5,65x./1O1Z6#)6!55I!6.H@
#1]21
LOGO
Tô Màu Theo Dòng Quét(Scan-line)
Nhóm 2 – Đại Học TinK2
2.Ý tưởng:
2.Ý tưởng:
(/Gg111f
1M 1 D J1 K
y r;6y n[
;1 K 11
D.1M A F) G+
g1111=1M
13#17
I=. y r;6
y n[
$ 11 J!5 B
1BV11F
1/D 1 > ? 11
D.101LI
LOGO
Tô Màu Theo Dòng Quét(Scan-line)
Nhóm 2 – Đại Học TinK2
3.Các trường hợp đặc biệt:
3.Các trường hợp đặc biệt:
1J\/FO11MC137..<IJT5U#L1
.H#LI:1B1MB
j8 () G+ 81Z 1 .H 5 6=fgIg1M
1IJ\/FO.HB>GF)831)f1M
1/gN#L119#1M7
jc()c1Z1=cD.318f7 -J!5
V.?$86$cN#L15lD.f/2
#L1B>G(IJ\/FO.H12SJ1K
#L128D.f1D:12DB>G
je()e1Z1=eD.l J!5?d8dcN
5NB>GD.dz
ji()i91=V.4 -IJ!5?(86(c
N 5 J\/ FO .H1 1= 4 5 2 , =
32B11J!5V.47",11IJ!5?
(c(e N2 5 11 J!5?(e6 (i5= #L1
5
LOGO
Tô Màu Theo Dòng Quét(Scan-line)
Nhóm 2 – Đại Học TinK2
3.1 Kiểm tra tính chất các giao điểm
3.1 Kiểm tra tính chất các giao điểm
"D2D.01g1M.H#G+11Z81=
2k O1 1 H 1M F) G+
3/17H/1M11D..Q1M.<1=
1.Nếu tung độ của 2 điểm mút đều lớn hơn hay nhỏ hơn
Y
SCAN
thì không có giao điểm nào .
LOGO
Tô Màu Theo Dòng Quét(Scan-line)
Nhóm 2 – Đại Học TinK2
3.Nếu tung độ của cả 2 điểm mút đều bằng Y
SCAN
thì đó là
cạnh nằm ngang.
2.Nếu tung độ y của mỗi điểm mút bằng Y
SCAN
thì giao điểm
tại đỉnh đó.
LOGO
Tô Màu Theo Dòng Quét(Scan-line)
Nhóm 2 – Đại Học TinK2
4.Cuối cùng , nếu 1 tung độ bé hơn Y
SCAN
còn tung độ kia lớn
hơn Y
SCAN
thì dòng quét cắt cạnh đó.
Để tìm giao điểm giữa cạnh đa giác và dòng quét, ta có nhận
xét sau :