Bài giảng Đồ họa máy tính - Tuần 5: Phương pháp vẽ ellipse - Lý Quốc Ngọc
Đồ họa máy tính
Tuần 5: Phương pháp vẽ ellipse
Nội dung
5.1. Phát biểu bài toán
5.2. Phương pháp
5.3. Giải thuật
2
TS. Lý Quốc Ngọc
3/24/2014
5.1. Phát biểu bài toán
- Vẽ ellipse dựa vào việc xác định các điểm thuộc
phương trình ellipse 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
5.1. Phát biểu bài toán
Giới hạn bài toán
- Khảo sát ellipse tâm O (0, 0).
- Khảo sát vẽ cung chắn ¼ ellipse.
(do tính đối xứng của đường tròn qua y=0, x=0)
4
TS. Lý Quốc Ngọc
5.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.
Xét vùng 1 (|dy/dx|<=1).
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
5.2. Phương pháp
Xét hàm fellipse(x, y) = r2 x2 + r2 y2 – r2 .r2 ,
y
x
x
y
0 (x, y) thuộc miền trong của ellipse
fellipse(x, y)=
(x, y) thuộc ellipse
0
(x, y) thuộc miền ngoài của ellipse
0
Để chọn điểm kế, xét đại lượng fellipse(x, y) tại điểm giữa 2 điểm
cần chọn:
p1k = fellipse (xk+1, yk – ½)= r2 (x + 1)2 + r2 (y - ½)2 – r2 .r2 (1)
y k
x k
x
y
6
TS. Lý Quốc Ngọc
5.2. Phương pháp
Nếu p1k < 0
Nếu p1k >= 0
Chọn điểm (x +1, y ).
k k
Chọn điểm (x +1, y - 1).
k
k
Cần xác định công thức qui nạp để tính pk ,
P1k+1 = fellipse(xk+1+1,yk+1–½)=r2 (x +1+1)2+r2 (yk+1-½)2 – r2 .r2 (2)
y k
x
x
y
Từ (1) và (2), ta có:
p1k+1 = p1k+2r2 (x +1)+r2 +r2 [(yk+1-½)2 - (yk-½)2]
(3)
(4)
y k
y
x
p10 = fellipse (1, ry – ½) =r2 - r2 .ry + ¼. r2
y
x
x
7
TS. Lý Quốc Ngọc
5.2. Phương pháp
Xét vùng 2 (|dy/dx| > 1).
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, yk – 1), (xk+1, yk-1).
8
TS. Lý Quốc Ngọc
5.2. Phương pháp
Xét vùng 2 (|dy/dx| > 1).
Để chọn điểm kế, xét đại lượng fellipse(x, y) tại điểm giữa 2
điểm cần chọn:
P2k=fellipse (xk+½,yk – 1)=r2 (x +½)2 +r2 (y - 1)2 – r2 .r2 (5)
y k
x k
x y
9
TS. Lý Quốc Ngọc
5.2. Phương pháp
Xét vùng 2 (|dy/dx| > 1).
Nếu p2k > 0
Nếu p2k ≤ 0
Chọn điểm (x , y - 1).
k k
Chọn điểm (x +1, y - 1).
k
k
Cần xác định công thức qui nạp để tính p2k ,
P2k+1 = fellipse(xk+1+½,yk+1–1)=r2 (x +½)2+r2 (yk-1-1)2 – r2 .r2
y
(6)
y k+1
x
x
Từ (5) và (6), ta có:
p2k+1 = p2k - 2r2 (yk -1) + r2 + r2 [(xk+1 + ½)2 – (xk+½)2]
(7)
(8)
x
x
y
p20 = fellipse (xlast+ ½, ylast–1) =r2 (xlast+ ½)2 + r2 (ylast -1)2 - r2 r2
x y
y
x
10
TS. Lý Quốc Ngọc
5.3. Giải thuật
B1. Nhập bán trục rx, ry, tâm C (xc,yc).
B2. Vẽ điểm đầu (x0,y0)=(0, ry).
B3. Tính các thông số cơ bản 2. r2 . x0, 2. r2 .y , p10 = r2 - r2 .ry + ¼. r2
y
x 0
y
x
x
B4. k = 0
B5. Thực hiện Lặp
B6. Nếu p1k < 0 thì Điểm kế (x=xk+1, y=yk) và cập nhật
2. r2 xk+1= 2. r2 x + 2. r2 ,
y
y k
y
p1k+1 = p1k + 2. r2 xk+1 + r2
y
y
B7. Nếu p1k >= 0 thì Điểm kế (x=xk+1, y=yk-1) và cập nhật
2. r2 xk+1= 2. r2 x + 2. r2 ,
y
y k
y
2. r2 y = 2. r2 y - 2. r2 ,
x k+1
x k
x
p1k+1 = p1k + 2. r2 xk+1 - 2. r2 yk+1 + r2
y
x
y
B7. Đến khi 2. r2 x ≥ 2. r2 y
y
x
11
TS. Lý Quốc Ngọc
5.3. Giải thuật
B8. xlast := x, ylast := y.
B9. Tính các thông số cơ bản: 2. r2 . ylast, 2. r2 .x ,
x
y last
p20 = r2 (xlast+ ½)2 + r2 (ylast -1)2 - r2 r2
y
x
x y
B10. k = 0
B11. Thực hiện Lặp
B12. Nếu p2k > 0 thì Điểm kế (x=xk, y=yk -1) và cập nhật
2. r2 yk+1= 2. r2 yk - 2. r2 ,
x
x
x
p2k+1 = p2k - 2. r2 yk+1 + r2
x
x
B13. Nếu p2k >= 0 thì Điểm kế (x=xk+1, y=yk-1) và cập nhật
2. r2 xk+1= 2. r2 x + 2. r2 ,
y
y k
y
2. r2 yk+1= 2. r2 yk - 2. r2
x
x
x
p2k+1 = p2k + 2. r2 xk+1 - 2. r2 yk+1 + r2
y
x
x
12
TS. Lý Quốc Ngọc
5.3. Giải thuật
B14. Xác định 3 điểm đối xứng với (x,y) qua các trục x=0, y=0
B15. Tịnh tiến 4 điểm vừa xác định theo vectơ gia số (xc,yc).
B16. k:=k+1
B16. Đến khi y = 0
13
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 5: Phương pháp vẽ ellipse - 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_5_phuong_phap_ve_ellipse_ly_q.pdf