Bài giảng Đồ họa máy tính - Bài: Vẽ đường thẳng và đường tròn - Ma Thị Châu
Thế nào là một đường thẳng lý tưởng
l Trông phải thẳng và liên tục
– Trong máy tính chỉ có thể được như vậy với các đường
thẳng song song với trục tọa độ hoặc có góc 45o với trục tọa
độ
l Phải đi qua hai điểm đầu và cuối
l Phải có mật độ và cường độ sáng đều
– Đều trên một đường thẳng và đều trên tất cả các đường
thẳng
l Thuật toán vẽ phải hiệu quả và có thể thực hiện
nhanh

Trang 1

Trang 2

Trang 3

Trang 4

Trang 5

Trang 6

Trang 7

Trang 8

Trang 9

Trang 10
Bạn đang xem tài liệu "Bài giảng Đồ họa máy tính - Bài: Vẽ đường thẳng và đường tròn - Ma Thị Châu", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Đồ họa máy tính - Bài: Vẽ đường thẳng và đường tròn - Ma Thị Châu
Đồ họa máy tính
Vẽ đường thẳng và đường tròn
1 2/17/17 Ma Thị Châu - Bộ môn KHMT
Hướng tới một đường thẳng lý tưởng
l Chúng ta chỉ có thể vẽ xấp xỉ đường thẳng một cách
rời rạc
l Chiếu sáng các điểm gần nhất với đường thẳng
thực tế trong trường hợp chỉ có hai cách thể hiện
một điểm:
– Điểm được thắp sáng hoặc không thắp sáng
2 2/17/17 Ma Thị Châu - Bộ môn KHMT
Thế nào là một đường thẳng lý tưởng
l Trông phải thẳng và liên tục
– Trong máy tính chỉ có thể được như vậy với các đường
thẳng song song với trục tọa độ hoặc có góc 45o với trục tọa
độ
l Phải đi qua hai điểm đầu và cuối
l Phải có mật độ và cường độ sáng đều
– Đều trên một đường thẳng và đều trên tất cả các đường
thẳng
l Thuật toán vẽ phải hiệu quả và có thể thực hiện
nhanh
3 2/17/17 Ma Thị Châu - Bộ môn KHMT
Đường thẳng đơn giản
Dựa trên phương trình đường
thẳng:
y = mx + b
Cách tiếp cận đơn giản:
tăng x, rồi tìm ra y
Cần các tính toán số thực
4 2/17/17 Ma Thị Châu - Bộ môn KHMT
Thuật toán đó có tốt không?
Thuật toán có vẻ ổn với những
đường thẳng có hệ số góc nghiêng
(slope) bằng 1 hoặc nhỏ hơn,
tuy nhiên, nó không tốt cho những
đường thẳng với hệ số góc nghiêng
lớn hơn 1 – các đường thẳng trông
rời rạc – phải thêm các điểm vào các
cột thì trông mới ổn.
Giải pháp? - sử dụng phương pháp
đối xứng.
5 2/17/17 Ma Thị Châu - Bộ môn KHMT
Thay đổi thuật toán cho từng góc phần
tám (45°) của hệ tọa độ
Có thể thay đổi tên của trục tọa độ, HOẶC, tăng theo trục x nếu
dy<dx, nếu không thì tăng theo trục y
6 2/17/17 Ma Thị Châu - Bộ môn KHMT
Thuật toán DDA
l DDA = Digital Differential Analyser
(Phân tích vi phân số hóa)
l Xét đường thẳng theo phương trình tham số theo t:
x(t) = x + t(x - x )
Start point - (x1, y1) 1 2 1
End point - (x , y )
2 2 y(t) = y1 + t(y2 - y1)
7 2/17/17 Ma Thị Châu - Bộ môn KHMT
x(t) = x + t(x - x )
Thuật toán DDA 1 2 1
y(t) = y1 + t(y2 - y1)
l Bắt đầu với t = 0 dx
x = x +
l Tại mỗi bước, tăng t một lượng moi cu dt
dy
dt y = y +
moi cu dt
l Chọn giá trị thích hợp cho dt
l Sao cho không bỏ mất điểm nào:
dx dy
– Nghĩa là: < 1 và <1
dt dt
l Chọn dt là giá trị max của dx và dy
8 2/17/17 Ma Thị Châu - Bộ môn KHMT
Thuật toán DDA
line(int x1, int y1, int x2, int y2)
{ n - range of t.
float x,y;
int dx = x2-x1, dy = y2-y1;
int n = max(abs(dx),abs(dy));
float dt = n, dxdt = dx/dt, dydt = dy/dt;
x = x1;
y = y1;
while( n-- ) {
point(round(x),round(y));
x += dxdt;
y += dydt;
}
9 } 2/17/17 Ma Thị Châu - Bộ môn KHMT
Thuật toán DDA
l Vẫn còn sử dụng rất nhiều phép toán số
thực.
– 2 phép làm tròn và hai phép cộng số thực.
l Liệu có cách nào đơn giản hơn không?
l Có cách nào mà chúng ta chỉ cần dùng các
phép toán số nguyên?
– Như vậy sẽ có thể cài đặt dễ dàng trên máy tính
hiện thời và có thể chạy rất nhanh.
10 2/17/17 Ma Thị Châu - Bộ môn KHMTFile đính kèm:
bai_giang_do_hoa_may_tinh_bai_ve_duong_thang_va_duong_tron_m.pdf

