ĐỒ HỌA RASTER
THUẬT TOÁN
VẼ ĐƯỜNG BẬC HAI
Giảng viên : Bùi Tiến Lên
Thuật toán vẽ đường bậc hai
Bước 1 Rút gọn đường cong cần vẽ (Dựa trên tính đối xứng
của đường cong).
Bước 2 Phân vùng đường cong cần vẽ. Dựa trên kết quả của
việc khảo sát hàm số đường cong cụ thể là sự biến thiên của đạo
hàm để phân đường cong thành từng vùng khác nhau.
Bước 3 Xây dựng thuật toán MidPoint vẽ cho từng vùng.
Ví dụ
Trang 2
Bước 1 Rút gọn đường cong
Trang 3
Bước 2 Phân vùng đường cong
Tăng chậm
Tăng nhanh
Giảm chậm
Giảm nhanh
Trang 4
Bước 2 Phân vùng đường cong
Đường cong
giảm chậm
Đường cong
giảm nhanh
Trang 5
Bước 3 Xây dựng thuật toán MidPoint
Thuaä
Thuaätt toaù
toaùnn 11
Thuaä
Thuaätt toaù
toaùnn 22
Trang 6
Ví dụ
Xây dựng thuật toán vẽ đường ellipse có phương trình
x2 y2
(E) 2 + 2 = 1 (a, b nguyên dương)
a
b
Trang 7
Vớ d
Haứm
b 2
b
x
2
y=
a x vụựi x [0, a] coự y' = a
a a2 x2
Baỷng khaỷo saựt
x
0
b
y
a2
a 2 + b2
b2
a 2 + b2
a
0
0
y'
1
Trang 8
Ví dụ
Hàm kiểm tra bên trong / bên ngoài của ellipse
F(x, y) = b2x2 + a2y2 – a2b2
bên ngoài
bên trong
Trang 9
Ví dụ
Nhận xét điểm sáng thứ i
A(xi + 1, yi)
yi
i
A
B(xi + 1, yi – 1)
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)
yi-1/2
M
yi-1
B
xi
xi+1
Trang 10
Ví dụ
Coâng thöùc tính fi goác
2
a
fi = b2xi2 + a 2yi2 + 2b2xi − a 2yi +
+ b2 − a 2b2
4
Coâng thöùc tính fi nguyeân
a2
fi = b x + a y + 2b xi − a yi + + b2 − a 2b2
4
2
2
i
2
2
i
2
2
Trang 11
Ví dụ
Cách tính fi cải tiến
a2
f1 = + b2 – a 2b
4
neáu fi < 0 thì
fi+1 = fi + b2 (2xi + 3)
neáu fi ≥ 0 thì
fi +1 = fi + b2 (2xi + 3) + a 2 (–2yi + 2)
Trang 12
Ví dụ
Đặt
M = b2(2xi + 3)
N = b2(2xi + 3) + a2(-2yi + 2)
Bảng biến thiên
i
xi
yi
M
N
fi < 0
Taêng 1
Khoâng
Taêng 2b2
Taêng 2b2
fi >= 0 Taêng 1 Giaûm 1 Taêng 2b2 Taêng 2a2 + 2b2
Trang 13
Ví dụ
Cách tính fi cải tiến cải tiến
f1 = a 2 4 + b2 – a 2b
M = 3b2
N = 2a 2 - 2a 2b + 3b2
neáu fi < 0 thì
neáu fi ≥ 0 thì
fi+1 = fi + M
fi +1 = fi + N
M + = 2b2
M + = 2b2
N + = 2b2
N + = 2a 2 + 2b2
Trang 14