... đường thẳng l
Hình 2 .1. Đồ thức của một đường thẳng
A
1
B
1
l
1
l
2
B
2
A
2
)B,B(B
)A,A(A
B AAB
21
21
≠∈
,l
B
A
1
B
2
Π
1
Π
2
A
x
A
2
B
1
l
1
l
2
l
Chú ý: Nếu từ hình chiếu l
1
và l
2
của đường
... hay không? (Hình 2 .11 )
Cách 1: Dùng hình chiếu cạnh. Nếu:
Hình 2 .10 . Cách 1. Xét điểm thuộc đường cạnh
y
x
Q
2
P
3
z
y
Q
3
P
1
O
P
2
∈
∈
222
11 1
QPI
QPI
I
1
I
3
I
2
Q
1
II- Các đường ... K
b
(K
1
b
,K
2
b
) gọi là cặp
điểm đồng tia chiếu đứng.
- K
2
a
xa hơn K
2
b
nên: K
1
a
thấy, K
1
b
khuất.
Hình 2 .19 .
Các cặp điểm đồng tia chiếu
b
2
a
2
II
≡
b
1
a
2
x
a
1
b
2
b
1
I
b
1
a
1
KK
≡
a
2
K
b
2
K
∈
∈
⇒≡
1
b
1
1
a
1
b
2
a
2
bI
aI
II
∈
∈
⇒≡
2
b
2
2
a
2
b
1
a
1
bK
aK
KK
a
1
I
...
... :
++
++=
+++
2
1
,12
2
1
,12
11 1 iiiiii
yxFyxFpp
( ) ( )
+
+++
+
+++=
+++
CyBxACyBxApp
iiiiii
2
1
12
2
1
12
11 1
(
)
(
)
iiiiii
y
y
Dx
Dy
y
y
B
A
p
p
=
+
=
+++ 11 1
2
2
2
2
ã ... )
+
+++=
++= CyBxAyxFp
2
1
12
2
1
,12
00000
(
)
Dx
Dy
B
A
B
A
C
By
Ax
p
−=+=++++=⇒
2
2
2
2
000
ĐỒHỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuaọt toaựn veừ ủửụứng 11 /22
T
T
h
h
u
u
a
a
ọ
ọ
t
t
... đường trên phía nằm yx, nếu,0
, yxF
Q(x
i
+1, y)
P
S
x
i
x
i
+1
y
i
y
i
+1
MidPoint
ĐỒHỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuật toán vẽ đường 15 /22
V
V
e
e
õ
õ
đ
đ
ư
ư
ơ
ơ
ø
ø
n
n
g
g
...
... 2Dy – Dx = 14 -10 = 4
i
i
x
x
i
i
y
y
i
i
p
p
i
i
0
0
1
1
2
2
2
2
0
0
4
4
1
1
1
1
3
3
2
2
1
1
-
-
2
2
2
2
1
1
4
4
2
2
1
1
1
1
2
2
3
3
1
1
5
5
2
2
2
2
6
6
4
4
1
1
6
6
2
2
3
3
0
0
5
5
1
1
7
7
2
2
4
4
-
-
6
6
6
6
1
1
8
8
2
2
4
4
8
8
7
7
1
1
9
9
2
2
5
5
2
2
8
8
2
2
0
0
2
2
6
6
-
-
4
4
9
9
2
2
1
1
2
2
6
6
1
1
0
0
1
1
0
0
2
2
2
2
2
2
7
7
4
4
ã ... P, tửực laứ
1
1
+=
+ ii
y
y
ã Xeựt
(
)
(
)
1
2
2
21
−−=−=
ii
y
y
Dx
d
d
Dx
p
(
)
(
)
[
]
1
2
1
2
−
−
+
+
=
⇒
iii
y
b
x
m
Dx
p
(x
i
+1, y)
P
S
x
i
x
i
+1
y
i
y
i
+1
y
d
1
d
2
ĐỒHỌA MÁY TÍNH
Dương ... :
(
)
(
)
c
Dxy
Dyx
c
Dxy
Dyx
p
p
iiiiii
+
+
=
+++
2
2
2
2
11 1
(
)
(
)
iiiiii
y
y
Dx
x
x
Dy
p
p
=
+++ 11 1
2
2
(
)
1
do
,
2
2
11 1
+
=
=
+++ iiiiii
x
x
y
y
Dx
Dy
p
p
ã Từ đây ta có thể suy ra cách tính
1+ i
p
từ
i
p
như...
... }
>=
<=
21
2
1
)1 0,min(
)0 0,max(
tt
p
p
q
t
p
p
q
t
k
k
k
k
k
k
U
U
ã Nếu hệ trên có nghiệm thì đoạn giao
21
Q
Q
sẽ laứ
)
,
(
),
,
(
212 1 211 111
Dy
t
y
Dx
t
x
Q
Dy
t
y
Dx
t
x
Q
+
+
+
+
.
ã ... thể
chuyển thành các vùng tô.
(a) (b) (c)
ĐỒHỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuaọt toaựn xeựn hỡnh 7 /11
ã ẹaởt
1max44
min133
1max22
min 111
,
,
,
,
yyqDyp
yyqDyp
xxqDxp
x
x
q
Dx
p
==
==
==
==
ã ...
kkk
p
q
r
/
=
mà
0
>
k
p
(đường thẳng đi từ trong
cửa sổ đi ra) và 1.ĐỒHỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuật toán xén hình 9 /11
T
T
h
h
u
u
a
a
ä
ä
t
t
t
t
o
o
a
a
ù
ù
n
n
x
x
e
e
ù
ù
n
n
...
... vùng đó với các biên
của cửa sổ. Bit 1 được đặt là 1 nếu
min
x
x
<
, các bit khác
được tính tương tự.
010 0
Window
011 0 010 1
00 01
10 01
0 010
10 1 010 00
0000
12 34
LEFT
RIGHT
TOP
BOTTOM
TOP
LEFT ... soồ.
(
)
( )
10 , ,
,
12 112 1
12 112 1
=+=+=
=+=+=
tyyDytDyyyytyy
x
x
Dx
tDx
x
x
x
t
x
x
ã Neỏu giao điểm ứng với giá trị t nằm ngoài đoạn
[
]
1
,
0
thì giao điểm đó sẽ không thuộc về cửa sổ.
ĐỒHỌA ...
≤≤
≤+≤
≤+≤
10
max1min
max1min
t
ytDyyy
x
tDx
x
x
P1(x1, y1)
P
2
(x
2
, y
2
)
t=0
t =1
t> ;1
x
x'
t<0
ĐỒHỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuaọt toaựn xeựn hỡnh 4 /11
T
T
h
h
u
u
a
a
ọ
ọ
t
t
...
... đệ 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 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
ä
ää
ä
ä
ää
ä
t
tt
t
t
tt
t
... 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);
}
} ... ĐỒHỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuaọt toaựn toõ maứu 14 /16
ã Coự hai quan ủieồm ve cách tô này, đó là dùng 4 điểm
lân...
... HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuật toán tô màu 11 /16
void PutEdgeInList(EDGELIST &EdgeList, POINT p1, POINT p2, int NextY)
{
EDGE EdgeTmp;
EdgeTmp.dxPerScan = float(p2.x-p1.x)/(p2.y-p1.y); ... thông tin của các cạnh
để sử dụng cho dòng quét kế tiếp
i=i +1
End
ĐỒHỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuật toán tô màu 12 /16
/*
Tim dinh ke tiep sao cho khong nam tren cung duong thang ... ĐỒHỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuật toán tô màu 9 /16
Lưu đồthuật toán tô màu theo dòng quét
Begin
Tạo danh sách tất...
... 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 5 /16
Đ
Đ
e
e
à
à
x
x
u
u
a
a
á
á
t
t
c
c
a
a
á
á
u
u
... ĐỒ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
... 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 thuaọt toaựn toõ maứu 8 /16
ã Khi doứng queựt ủaùt y=y
B
ET :...
... có nhận xét :
()()
m
kk
m
xx
kk
1
1
1
1
=−+=−
+
hay
m
xx
kk
1
1
+=
+
.
y=k +1
y=k
x
k
x
k +1
ĐỒHỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuật toán tô màu 3 /16
C
C
a
a
ù
ù
c
c
v
v
a
a
á
á
n
n
... ĐỒHỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuật toán tô màu 1/ 16
C
CC
C
C
CC
C
a
aa
a
a
aa
a
ù
ùù
ù
ù
ùù
ù
c
cc
c
c
cc
c
... biên. Cách này thường được dùng cho
các dạng đường biên phức tạp.
ĐỒHỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Các thuật toán tô màu 4 /16
T
T
o
o
å
å
c
c
h
h
ư
ư
ù
ù
c
c
c
c
a
a
á
á
u
u
...
... siêu thị ABC phong phú 1 2 3 4 5 6 7
2 Nhân viên ABC tính tiền nhanh 1 2 3 4 5 6 7
3 Nhân viên ABC không lịch thiệp 1 2 3 4 5 6 7
4 Giá bán ở ABC rẻ 1 2 3 4 5 6 7
5 … … … … 1 2 3 4 5 6 7
Đánh giá ... toàn không đồng ý: chọn số 1
- Nếu bạn hoàn toàn đồng ý: chọn số 7
- Hoặc chọn một trong các số 2, 3, 4, 5, 6 để chỉ mức độ
tán thành của bạn.
Phát biểu về siêu thị ABC Mức độ tán thành
1 Hàng hóa ... chỉ tượng trưng cho mt
nhón/tờn/lai ca i tng o.
ã
Yờu cu s dng: phải tuân theo ánh xạ 1 1, không
cùng 1 giá trị số biểu hiện 2 tên/đối tượng khác nhau.
ã
Thớ d
... ĐỒHỌA RASTER
ĐỒ HỌA RASTER
THUẬT TOÁN
THUẬT TOÁN
VẼ ĐƯỜNG BẬC HAI
VẼ ĐƯỜNG BẬC HAI
Giảng viên : Bùi Tiến Lên
Trang 2
Thuật toán vẽ đường bậc hai
Thuật toán vẽ đường bậc hai
Bước 1 Rút ... 10
Ví dụ
Ví dụ
Nhận xét điểm sáng thứ i
A(x
i
+ 1, y
i
)
B(x
i
+ 1, y
i
– 1)
Xây dựng biến f
i
Trung điểm M của AB
M(x
i
+ 1, y
i
– 1/ 2)
Biến f
i
f
i
= F(M)
i
B
A
M
y
i
-1/ 2
x
i
x
i
+1
y
i
y
i
-1
Trang ... f
i
2
i
2
i i
i
2
i1i
i
22
2
1
+++ + =
++=
<
+
=
1+
+
Trang 13
Ví dụ
Ví dụ
Đặt
M = b
2
(2x
i
+ 3)
N = b
2
(2x
i
+ 3) + a
2
(-2y
i
+ 2)
Bảng biến thiên
i x
i
y
i
M N
f
i
< 0 Tăng 1 Không Tăng...
... x
đầu điểm đònh Xác 1 bước
1+ i
2
1i
2
i1+i
i
1
1
+
−
Trang 11
Thuaọt toaựn MidPoint
Thuaọt toaựn MidPoint
Dửù ủoaựn ủieồm saựng thửự i +1
i
A
B
Trang 12
Thuật toán MidPoint
Thuật toán MidPoint
- ... đầu tiên
x
1
= 0
y
1
= r
Bước 2 Xác đònh những điểm tiếp theo
Lặp x
i
< y
i
f
i
= …
f
i
< 0
x
i +1
= x
i
+ 1
y
i +1
= y
i
f
i
≥ 0
x
i +1
= x
i
+ 1
y
i +1
= y
i
– 1
Trang 17
Thuaọt ... 0
Trang 13
Thuật toán MidPoint
Thuật toán MidPoint
Xây dựng biến f
i
Trung điểm M của AB
M(x
i
+ 1, y
i
– 1/ 2)
Biến f
i
f
i
= F(M)
f
i
= F(x
i
+ 1, y
i
– 1/ 2)
i
B
A
M
y
i
-1/ 2
x
i
x
i
+1
y
i
y
i
-1
Trang...