TRƯỜNG CAO ĐẲNG CÔNG NGHIỆP VIỆT ĐỨC
BÀI GIẢNG SÁT HẠCH
Họ và tên
: TRƯƠNG THỊ LỆ CHÂM
Học phần
: ĐỒ HỌA MÁY TÍNH
Đơn vị
Năm học
: Khoa Cơng nghệ thơng tin
: 2016 – 2017
Em hãy vẽ mơ phỏng màn hình có độ phân giải 8x8 và xác
định tọa độ của các điểm sau trên màn hình đó: A(3,2);
B(5,7)?
1.4 CÁC THUẬT TOÁN
VẼ ĐOẠN THẲNG
1.4 CÁC THUẬT TỐN VẼ ĐOẠN THẲNG
1.4.1 Bài tốn
Cho hai điểm ảnh A và B trên màn hình có tọa độ lần lượt là: A(x1, y1) và
B(x2,y2).
Yêu cầu: Vẽ đoạn thẳng nối 2 điểm ảnh A và B đã cho bằng một màu định
trước.
1.4 CÁC THUẬT TỐN VẼ ĐOẠN THẲNG
* Phân tích bài tốn:
Hệ số góc của đoạn thẳng AB được xác định là:
∆y
m=
∆x
Với ∆x = x2 - x1, ∆y = y2 - y1
A
∆x=0
m không xác định
B
hay x1=x2 và ∆y ≠ 0
1.4 CÁC THUẬT TỐN VẼ ĐOẠN THẲNG
* Phân tích bài toán:
A
m=0
A
B’
m=± 1
B
B
A’
khi ∆y = 0 hay y1=y2
m =±1
khi |∆x| = |∆y|
1.4 CÁC THUẬT TỐN VẼ ĐOẠN THẲNG
* Phân tích bài toán:
A
B
B
A
A
A
m>1
m < -1
B
B’
1.4 CÁC THUẬT TOÁN VẼ ĐOẠN THẲNG
* Phương pháp:
Xác định các tọa độ nguyên (x,y) với x trong khoảng từ x đến x và y trong khoảng từ y đến y gần với đoạn
1
2
1
2
thẳng nhất để làm điểm vẽ.
Vì các Pixel được vẽ ở các vị trí nguyên nên đoạn thẳng được vẽ giống như hình bậc thang.
640x480
4K
Hình 1
Hình 2
1.4 CÁC THUẬT TỐN VẼ ĐOẠN THẲNG
1.4.2 Thuật tốn DDA
(Digital Differential Analyzer)
a. Nội dung:
Xác định tọa độ các điểm ảnh gần nhất mà đoạn thẳng AB đi qua và tô màu điểm
ảnh đó.
b. Ý tưởng:
Các tọa độ điểm vẽ là tọa độ nguyên nên ta cho một giá trị x (hoặc y) chạy từ tọa độ
của điểm A đến tọa độ điểm B, giá trị còn là là y (hoặc x) được tính tốn và làm trịn.
1.4 CÁC THUẬT TỐN VẼ ĐOẠN THẲNG
1.4.2 Thuật tốn DDA
(Digital Differential Analyzer)
c. Thuật toán:
Bước 1: Nhập tọa độ hai điểm A(x1,y1) B(x2,y2).
Bước 2: Tính ∆x = x2 - x1
∆y = y2 - y1 Step = Max(|∆x| , |∆y|)
Bước 3: Khởi tạo các giá trị: IncX = ∆x/Step;
Bước 4: Tính
x = x + IncX;x = x1;
IncY = ∆y/Step;
y =y y=+y1; Vẽ điểm (x,y);
IncY;
Vẽ điểm (Round(x),Round(y));
j=j+1
Bước 5: Nếu j>Step thì dừng
Ngược lại thì quay lại bước 4
Chú ý: Thủ tục vẽ điểm ở thuật tốn này là việc tơ điểm vẽ bằng màu dùng để vẽ đoạn thẳng
j=1
1.4 CÁC THUẬT TỐN VẼ ĐOẠN THẲNG
1.4.2 Thuật tốn DDA
(Digital Differential Analyzer)
d. Ví dụ áp dụng
* Ví dụ 1:
Dùng thuật tốn DDA để vẽ đoạn thẳng AB trong đó tọa độ A,B trên màn hình là A(2,2); B(6,4).
A
B
1.4 CÁC THUẬT TỐN VẼ ĐOẠN THẲNG
d. Ví dụ áp dụng
Dùng thuật toán DDA để vẽ đoạn thẳng AB trong đó tọa độ A, B trên màn hình là: A(2,2); B(6,4)
B1: Nhập tọa độ A(2,2); B(6,4)
B2: ∆x = 4; ∆y = 2
Step = 4
A
B
B3: Khởi tạo các giá trị:
IncX =1;
IncY =0.5;
x = 2; y = 2;
B4:
x =3;
Vẽ điểm (2,2); j=1
y =2.5;
Vẽ điểm (Round(x),Round(y)) là điểm (3,3)
j=j+1=2
B5: j=2 quay lại bước 4
1.4 CÁC THUẬT TỐN VẼ ĐOẠN THẲNG
d. Ví dụ áp dụng
Dùng thuật toán DDA để vẽ đoạn thẳng AB trong đó tọa độ A, B trên màn hình là: A(2,2); B(6,4)
B 4:
x =4;
y =3;
Vẽ điểm (Round(x),Round(y) là
A
điểm (4,3)
B
B5:
j=j+1=3
j=3 quay lại bước 4
B4: Tính
x =5; y = 3.5;
Vẽ điểm (Round(x),Round(y)) là điểm (5,4)
B5:
j=j+1=4
j=4 quay lại bước 4
B 4: Tính
x = 6;
y = 4.4;
Vẽ điểm (Round(x),Round(y)) là điểm (6,4)
j=j+1=5
B5: j= 5 lớn hơn 4 nên thuật toán dừng
Các điểm vẽ là: (2,2); (3,3); (4,3); (5,4); (6,4)
1.4 CÁC THUẬT TOÁN VẼ ĐOẠN THẲNG
* Cài đặt minh họa thuật toán DDA
Procedure DDALine(x1,y1,x2,y2:Integer);
var
dx,dy,step,j:integer;
Incx,Incy,x,y:real;
Begin
dx:=x2-x1;
dy:=y2-y1;
If abs(dx)>abs(dy) Then step:=abs(dx)
else step:=abs(dy);
Incx:=dx/step;
Incy:=dy/step;
x:=x1;
y:=y1;
Putpixel(round(x),round(y),15);
for J:=1 to step do
Begin
x:=x+xInc;
y:=y+yInc;
Putpixel(round(x),round(y),15);
End;
End;
1.4 CÁC THUẬT TỐN VẼ ĐOẠN THẲNG
d. Ví dụ áp dụng
* Ví dụ 2:
Dùng thuật tốn DDA để vẽ đoạn thẳng AB trong đó tọa độ A, B trên màn hình là: A(2,5); B(6,3)
B
A
1.4 CÁC THUẬT TỐN VẼ ĐOẠN THẲNG
* Ví dụ 2:
Dùng thuật tốn DDA để vẽ đoạn thẳng AB trong đó tọa độ A, B trên màn hình là: A(2,5); B(6,3)
B
A
Các điểm vẽ là: (2,5); (3;5); (4,4); (5,4); (6,3)
BÀI TẬP VỀ NHÀ
Lý thuyết:
- Phân tích các trường hợp của bài toán vẽ đoạn thẳng đi qua hai điểm trên tọa độ màn hình và lấy ví dụ.
- Đọc và tìm hiểu trước thuật tốn Bresenham vẽ đoạn thẳng
Bài tập:
- Bài tập 1,2 trang 22 trong tài liệu học tập.
-Tài liệu tham khảo:
Giáo trình Đồ họa máy tính – TS Nguyễn Thế Lộc.
Giáo trình Lý thuyết đồ họa – Nguyễn Hữu Tài.
Tài liệu học tập Đồ họa máy tính (Lưu hành nội bộ).
Xin cảm ơn các thầy cô
cùng các em !