Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin
Trang 1ĐỒ HỌA RASTERCÁC THUẬT TOÁN VẼ ĐƯỜNG THẲNG
Trang 2Bài toán vẽ đường thẳng
Input
(X1, Y1) (X2, Y2)Output
{(x1, y1) (x2, y2) … (xn, yn)} là những điểm sáng “nằm trên” đường thẳng
Trang Trang 2 2
(X1, Y1)
(X2, Y2)
Trang 3Một số công thức cơ bản của đường thẳng
m
bm
yx
bmx
1 1
1 2
1 2
mXY
b
x
yX
X
Y
Ym
mm
Trang 4Phân loại đường thẳng
Trang Trang 4 4
Trang 5Giải quyết
Thuật toán DDA
Thuật toán Bresenham
Trang 6Thuật toán DDA
Trang 8Trường hợp 1
Cải tiến tính y
Xét hai điểm sáng liên tiếp nhau
ii+1
(xi, ycũ)(xi+1, ymới)
Trang Trang 8 8
Công thức liên hệ
y đầu là Y1
ymới = ycũ + m
Trang 9Bước 2 Xác định những điểm tiếp theo
Lặp yi < Y2
yi+1 = yi + 1
x = yi+1/m – b/m
Trang 10Trường hợp 2
Cải tiến tính x
Xét hai điểm sáng liên tiếp nhau
Công thức liên hệ
ii+1
(xc, yi)(xmới, yi+1)
Trang Trang 10 10
Công thức liên hệ
x đầu là X1
xmới = xcũ + k
1 2
1
2
YY
X
Xk
−
−
=
Trang 11Bài toán mở rộng
Input
(X1, Y1, C1) (X2, Y2, C2)Output
{(x1, y1, c1) (x2, y2, c2) … (xn, yn, cn)} là những điểm sáng “nằm trên” đường thẳng và có màu khác nhau
(X2, Y2, C2)(X2, Y2, C2)
Trang 12Thuật toán Bresenham
Trang 13Trường hợp 1
Dự đoán điểm sáng thứ i+1
B
Trang 14yi
Trang 15Trường hợp 1
Khoảng cách d1, d2 hay khoảng cách h1, h2 ?
BC
Trang 16Trường hợp 1
Cách tính pi
pi = 2∆yxi – 2∆xyi + 2∆xY1 – 2∆yX1 + 2∆y – ∆x
Trang Trang 16 16
Trang 18pi+1 = pi + 2∆y - 2∆x
Trang 19Trường hợp 2
Dự đoán điểm sáng thứ i+1
i
Trang 20i 1
i
i
x1x
d
xx
d
m
bm
1
yx
pbiếndựng
Xây
−+
dd
y
p = ∆ −
Trang 22Lặp xi < X2
Trang Trang 22 22