Bài giảng Đồ họa máy tính - Tuần 4: Phương pháp vẽ đường tròn - Lý Quốc Ngọc
Đồ họa máy tính
Tuần 4: Phương pháp vẽ đường tròn
TS. Lꢀ Quꢁc Ngꢂc
Nội dung
4.1. Phát biểu bài toán
4.2. Phương pháp
4.3. Giải thuật
2
TS. Lꢀ Quꢁc Ngꢂc
3/7/2014
4.1. Phát biểu bài toán
- Vẽ đường tròn dựa vào việc xác định các điểm thuộc
phương trình đường tròn trên lưới tọa độ nguyên.
- Các điểm vẽ cần thỏa yêu cầu xấp xỉ tốt nhất.
- Các điểm vẽ cần thỏa yêu cầu liên tục trong lân cận
8 của điểm ảnh.
- Điểm vẽ tại bước i+1 được xác định từ điểm vẽ tại
bước i.
3
TS. Lꢀ Quꢁc Ngꢂc
4.1. Phát biểu bài toán
Giới hạn bài toán
- Khảo sát đường tròn tâm O (0, 0).
- Khảo sát vẽ cung chắn 1/8 đường tròn.
(do tính đꢁi xứng của đường tròn qua y=0, x=0, y=±x)
4
TS. Lꢀ Quꢁc Ngꢂc
4.2. Phương pháp
- Tìm hàm lượng giá để xác định điểm vẽ kế tiếp từ
điểm vẽ hiện thời.
Giả sử tại bước k, ta có điểm (xk, yk).
Tại bước k+1, cần chꢂn 1 trong 2 điểm sau:
(xk+1, yk), (xk+1, yk-1).
5
TS. Lꢀ Quꢁc Ngꢂc
4.2. Phương pháp
Xét hàm fcircle(x, y) = x2 + y2 – r2,
(x, y) thuộc miền trong của đường tròn
(x, y) thuộc đường tròn
0
0
fcircle(x, y)=
0 (x, y) thuộc miền ngoài của đường tròn
Để chꢂn điểm kế, xét đại lượng fcircle(x, y) tại điểm giữa 2
điểm cần chꢂn:
pk = fcircle(xk + 1, yk – ½)= (xk + 1)2 + (yk - ½)2 – r2 (1)
6
TS. Lꢀ Quꢁc Ngꢂc
4.2. Phương pháp
Nếu pk < 0
Chꢂn điểm (xk+1, yk).
Nếu p >= 0 Chꢂn điểm (x +1, y - 1).
k
k
k
Cần xác định công thức qui nạp để tính pk ,
pk+1=fcircle(xk+1+1,yk+1 –½)=(xk+1+1)2 +(yk+1-½)2 – r2 (2)
Từ (1) và (2), ta có:
pk+1 = pk + 2.(xk+1) + (y2 -y2 ) - (yk+1- yk) + 1
(3)
k+1
k
p0 = fcircle (1, r – ½) = 1 + (r – ½)2 – r2 = 5/4 - r
7
TS. Lꢀ Quꢁc Ngꢂc
4.2. Phương pháp
Từ (3) ta có:
Nếu pk < 0
pk+1 = pk + 2. xk+1 + 1
2. xk+1= 2. xk+ 2
(4)
Nếu p >= 0 p = p + 2. x - 2. y + 1 (5)
k
k+1
k
k+1
k+1
2. xk+1= 2. xk+ 2
2. yk+1= 2. yk - 2
8
TS. Lꢀ Quꢁc Ngꢂc
4.2. Phương pháp
- Nhận xét.
Và nếu r nguyên thì có thể thay p0 bởi :
p’0 = 1 – r
(6)
Từ (4), (5), (6), nếu r nguyên, ta có:
pk nguyên với mꢂi k, do đó các phép tính cần thiết để vẽ
điểm trên đường tròn là các phép tính cộng, trừ với số
nguyên.
9
TS. Lꢀ Quꢁc Ngꢂc
4.3. Giải thuật
B1. Nhập bán kính r, tâm C (xc,yc).
B2. Vẽ điểm đầu (x0,y0)=(0, r).
B3. Tính các thông sꢁ cơ bản 2. x0, 2. y0, p0 = 5/4 - r.
B4. k = 0
B5. Thực hiện Lặp
B6. Nếu pk < 0 thì
Điểm kế (x=xk+1, y=yk) và cập nhật
2. xk+1= 2. xk+ 2 ,
pk+1 = pk + 2. xk+1 + 1
B7. Nếu pk >= 0 thì Điểm kế (x=xk+1, y=yk-1) và cập nhật
2. xk+1= 2. xk+ 2 , 2. yk+1= 2. yk - 2,
pk+1 = pk + 2. xk+1 - 2. yk+1 + 1
B8. Xác định 7 điểm đꢁi xứng với (x,y) qua các trục x=0, y=0, y=±x
B9. Tịnh tiến 8 điểm vừa xác định theo vectơ gia sꢁ (xc,yc).
B10. k := k + 1
B10. Đến khi x y
10
TS. Lꢀ Quꢁc Ngꢂc
Bạn đang xem tài liệu "Bài giảng Đồ họa máy tính - Tuần 4: Phương pháp vẽ đường tròn - Lý Quốc Ngọc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
- bai_giang_do_hoa_may_tinh_tuan_4_phuong_phap_ve_duong_tron_l.pdf