ĐỒ HỌA RASTER
ĐỒ HỌA RASTER
CÁC THUẬT TOÁN
CÁC THUẬT TOÁN
VẼ ĐƯỜNG TRÒN
VẼ ĐƯỜNG TRÒN
Giảng viên : Bùi Tiến Lên
Trang 2
Phân loại đường tròn
Phân loại đường tròn
Đường tròn tâm O
O O
Đường tròn tâm bất kỳ
Trang 3
Ứng dụng phép tònh tiến
Ứng dụng phép tònh tiến
Nếu (x, y) thuộc đường tròn tâm O
Thì (x + x
c
, y + y
c
) thuộc đường tròn tâm (x
c
, y
c
)
O
(x
c
, y
c
)
(x, y)
(x+x
c
, y+y
c
)
Trang 4
Phöông trình ñöôøng troøn
Phöông trình ñöôøng troøn
O
22
222
xry
ryx
−=
=+
r
Trang 5
Tính đối xứng của đường tròn
Tính đối xứng của đường tròn
Đường tròn có 4 trục đối xứng
-Trục Ox
-Trục Oy
-Trục phân giác thứ nhất
-Trục phân giác thứ hai
O
x
y
phân giác 1
p
h
a
â
n
g
i
a
ù
c
2
Trang 6
Ứng dụng tính đối xứng
Ứng dụng tính đối xứng
Nếu (x, y) thuộc đường tròn
Thì (-x, y), (x, -y), (-x, -y), (y, x), (-y, x), (y, -x) và (-y, -x)
thuộc đường tròn
O
12
3
4
5 6
7
8
chọ
n
Trang 7
Vẽ cung một phần tám thứ nhất
Vẽ cung một phần tám thứ nhất
Input
r bán kính
Output
{(x
1
, y
1
), (x
2
, y
2
) … (x
n
, y
n
)} “thuộc” cung một phần tám
thứ nhất
O
A
B
Trang 8
Khảo sát cung một phần tám thứ nhất
Khảo sát cung một phần tám thứ nhất
Mục tiêu khảo sát sự biến thiên của hoành độ và tung
độ
2322
2
22
22
)xr(
r
- y"
xr
x
- y'
]
2
r
[0, x vớixr y Hàm
−
=
−
=
∈−=
Trang 9
Khảo sát cung 1/8 thứ nhất
Khảo sát cung 1/8 thứ nhất
Bảng biến thiên
−−
−
"y
1
0
'y
2
r
r
y
2
r
0x
Đường cong
giảm chậm
Trang 10
Thuật toán trực tiếp
Thuật toán trực tiếp
Round(y) = y
xr = y
1 + x = x
]
2
r
[ < x Lặp
lại còn điểm những đònh Xác 2 bước
r = y
0 = 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
- Khái niệm bên trong / bên
ngoài đường tròn
- Hàm kiểm tra một điểm
bên trong / bên ngoài
đường tròn
F(x, y) = x
2
+ y
2
– r
2
- Cách kiểm tra
bên trong
bên ngoài
P(x, y) F(x, y)
bên trong < 0
nằm trên = 0
bên ngoài > 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 14
Thuaọt toaựn MidPoint
Thuaọt toaựn MidPoint
Coõng thửực tớnh f
i
4
1
r1yyx2xf
2
i
2
ii
2
ii
++++=
Coõng thửực tớnh f
i
nguyeõn
2
i
2
ii
2
ii
r1yyx2xf +++=
Trang 15
Khi f
Khi f
i
i
không nguyên !
không nguyên !
Có hai cách giải quyết để f
i
thành nguyên
Cách 1
f
i
< 0 ⇔ kf
i
< 0
f
i
≥ 0 ⇔ kf
i
≥ 0
Với k > 0
Cách 2
f
i
< 0 ⇔ [f
i
] < 0
f
i
≥ 0 ⇔ [f
i
] ≥ 0
Trang 16
Thuật toán MidPoint
Thuật toán MidPoint
Thuật toán
Bước 1 Xác đònh điểm đầ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 toaựn MidPoint
Thuaọt toaựn MidPoint
Caựch tớnh f
i
caỷi tieỏn
f
1
= 1 r
f
i
< 0
f
i+1
= f
i
+ 2x
i
+ 3
f
i
0
f
i+1
= f
i
+ 2x
i
2y
i
+ 5