Tải bản đầy đủ (.pdf) (4 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (22.76 KB, 4 trang )

ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuật toán tô màu 5/16
Đ
Đ
e
e
à
à


x
x
u
u
a
a
á
á
t
t


c
c
a
a
á
á
u
u



t
t
r
r
u
u
ù
ù
c
c


d
d
ư
ư
õ
õ


l
l
i
i
e
e
ä
ä
u

u


c
c
u
u
û
û
a
a


m
m
o
o
ä
ä
t
t


c
c
a
a
ï
ï
n

n
h
h


(
(
E
E
D
D
G
G
E
E
)
)

Min
y
: giá trò tung độ nhỏ nhất trong 2 đỉnh của
cạnh.

txIntersec
: hoành độ giao điểm của cạnh với dòng
quét hiện hành.

DxPerScan
: giá trò 1/m (m là hệ số góc của cạnh).


deltaY
: khoảng cách từ dòng quét hiện hành tới đỉnh
Max
y
. Lúc này điều kiện
Max
yk >
trở thành
0≤deltaY
.
• Giá trò
txIntersec
được khởi gán ban đầu là hoành độ
của đỉnh có tung độ là
Min
y
, và giá trò
deltaY
được
khởi gán ban đầu là
1+−
MinMax
yy
.
yMin
xIntersect
y=k
deltaY
ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuật toán tô màu 6/16

G
G
i
i
a
a
û
û
i
i


q
q
u
u
y
y
e
e
á
á
t
t


t
t
r
r

ư
ư
ơ
ơ
ø
ø
n
n
g
g


h
h
ơ
ơ
ï
ï
p
p


d
d
o
o
ø
ø
n
n

g
g


q
q
u
u
e
e
ù
ù
t
t


đ
đ
i
i


q
q
u
u
a
a



đ
đ


n
n
h
h
• Tính một giao điểm nếu chiều của hai cạnh kề của
đỉnh đó có xu hướng tăng hay giảm.
• Tính hai giao điểm nếu chiều của hai cạnh kề của
đỉnh đó có xu hướng thay đổi, nghóa là tăng-giảm
hay giảm-tăng.
• Khi cài đặt để khỏi phải xét điều kiện này cho phức
tạp, khi xây dựng dữ liệu cho mỗi cạnh trước khi đưa
vào ET, người ta sẽ xử lí các cạnh có đỉnh tính hai
giao điểm bằng cách loại đi một pixel trên cùng của
một trong hai cạnh.
(a) (b)
P
i
P
i-1
P
i+1
P
i
P
i-1
P

i+1
P
i-1
P
i-1
P
i+1
P
i+1
P
i
P
i
y=k
P
i-1
P
i
P
i+1
y=k-1
P
i+1
y=k
P
i+1
P
i
P
i-1

y=k-1
P
i-1
P
i
*
P
i
*
P
i-1
P
i+1
ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuật toán tô màu 7/16
M
M
i
i
n
n
h
h


h
h
o
o
ï

ï
a
a


t
t
h
h
u
u
a
a
ä
ä
t
t


t
t
o
o
a
a
ù
ù
n
n
• Ban đầu :

♦ ET : AB*, AI, H*G, BC, G*F, DC, EF. (loại IH và DE)
♦ AET : NULL.
• Khi dòng quét đạt y=y
A
♦ ET : H*G, BC, G*F, DC, EF. (chuyển AB*, AI sang AET)
♦ AET : AB*, AI.
• Khi dòng quét đạt y=y
H*
♦ ET : BC, G*F, DC, EF. (chuyển H*G sang AET)
♦ AET : AB*, H*G. (loại AI vì không còn cắt dòng quét)
Top
F
ED
C
B
G
HI
A
Bottom
y
B
y
G*
=y
G
+1
y
B*
=y
B

-1
y
G
y
H*
=y
H
+1
y
H
ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuật toán tô màu 8/16
• Khi dòng quét đạt y=y
B
♦ ET : G*F, DC, EF. (chuyển BC sang AET)
♦ AET : BC, H*G. (loại AB*, sắp xếp lại H*G và BC)
• Khi dòng quét đạt y=y
G*
♦ ET : DC, EF. (chuyển G*F sang AET)
♦ AET : BC, G*F. (loại H*G vì không còn cắt dòng quét)
• Khi dòng quét đạt y=y
D
♦ ET : NULL. (chuyển DC, EF sang AET)
♦ AET : BC, DC, EF, G*F. (sắp xếp lại BC, GF*, DC, EF)
• Khi dòng quét đạt y=y
C
+1
♦ ET : NULL.
♦ AET : EF, G*F. (loại BC, DC vì không còn cắt dòng quét)
• Khi dòng quét đạt y=y

F
+1
♦ ET : NULL.
♦ AET : NULL. (loại EF, G*F vì không còn cắt dòng quét).
• Thuật toán dừng tại đây.

×