ĐỒ HỌA RASTERCÁC THUẬT TOÁN VẼ ĐƯỜNG TRÒN Giảng viên : Bùi Tiến Lên... Phân loại đường trònĐường tròn tâm O Đường tròn tâm bất kỳ... Tính đối xứng của đường trònĐường tròn có 4 trục đối
Trang 1ĐỒ HỌA RASTER
CÁC THUẬT TOÁN VẼ ĐƯỜNG TRÒN
Giảng viên : Bùi Tiến Lên
Trang 2Phân loại đường tròn
Đường tròn tâm O Đường tròn tâm bất kỳ
Trang 3Ứng dụng phép tịnh tiến
Thì (x + xc, y + yc) thuộc đường tròn tâm (xc, yc)
(xc, yc)
O
(x, y)
(x+xc, y+yc)
Trang 4Phương trình đường tròn
2 2
2
x r
y
r y
x
−
=
= +
r
Trang 5Tí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
x y
Trang 6Ứng dụng tính đối xứng
Thì (-x, y), (x, -y), (-x, -y), (y, x), (-y, x), (y, -x) và (-y, -x) thuộc đường tròn
1
n
O
3
8
Trang 7Vẽ cung một phần tám thứ nhất
Input
r bán kính Output
{(x1, y1), (x2, y2) … (xn, yn)} “thuộc” cung một phần tám thứ nhất
A
B
Trang 8Khảo sát cung một phần tám thứ nhất
2 2
2 2
x r
x
-y'
] 2
r [0, x
với x
r y
Hàm
−
=
∈
−
=
2 3 2 2
2
) x r
(
r
-y"
−
=
Trang 9Khảo sát cung 1/8 thứ nhất
Bảng biến thiên
r
r y
2
r
0
x
Đường cong giảm chậm
−
−
−
"
y
1
0 '
y
2 r y
Trang 10Thuật toán trực tiếp
]
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
1
Round(y)
= y
x r
=
y
1 + x
= x
] 2
r [
<
x
Lặp
1
+
i
2 1 i 2
i 1
+
i
i
+
−
Trang 11Thuật toán MidPoint
B
Trang 12Thuậ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) = x2 + y2 – r2
bên trong
bên ngoài
F(x, y) = x + y – r
Trang 13Thuật toán MidPoint
Xây dựng biến fi
Trung điểm M của AB
M(xi + 1, yi – 1/2)
Biến fi
fi = F(M)
f = F(x + 1, y – 1/2)
M
yi-1/2
yi
fi = F(xi + 1, yi – 1/2)
B
yi-1
Trang 14Thuật toán MidPoint
Công thức tính fi
4
1 r
1 y
y x
2 x
i
2 i i
2 i
2 i
2 i i
2 i
i i
i i
i
Trang 15Khi fii không nguyên !
Có hai cách giải quyết để fi thành nguyên
Cách 1
fi < 0 ⇔ kfi < 0
fi ≥ 0 ⇔ kfi ≥ 0 Với k > 0
Với k > 0
Cách 2
fi < 0 ⇔ [fi] < 0
Trang 16Thuật toán MidPoint
Thuật toán
x1 = 0
y1 = r
Lặp xi < yi
Lặp xi < yi
fi = …
fi < 0
xi+1 = xi + 1
yi+1 = yi
Trang 17Thuật toán MidPoint
Cách tính fi cải tiến
f1 = 1 – r
fi < 0
fi+1 = fi + 2xi + 3
fi ≥ 0
fi+1 = fi + 2xi – 2yi + 5