You are on page 1of 5

ĐỀ THI KẾT THÚC HỌC PHẦN

Học kỳ 2 năm học 2015-2016


Thời gian thi: 17g30 – Ngày 24/05/2016
Mã đề thi: 199.2.1.5.9
- Tên học phần: Đồ hoạ máy tính
- Mã học phần: TIN3133 - Số tín chỉ: 3
- Thời gian làm bài: 120 phút (không kể thời gian chép/phát đề)
- Loại đề: Không được sử dụng tài liệu
Câu 1 (3 điểm):
a) (1 điểm) Hàm vẽ đoạn thẳng theo thuật toán Bresenham dưới đây đúng hay sai? Nếu sai, anh/chị
hãy sửa lại và giải thích vì sao.
1 void VeDoanThangBresenham(int x1, int y1, int x2, int y2)
2 {
3 int dx = x2 - x1;
4 int dy = y2 - y1;
5 int p = 2 * dy - dx;
6 int y = y2;
7 for (int x = x1; x <= x2; x++)
8 {
9 VeDiem(x, y);
10 if (p < 0) p += 2 * dy;
11 else p += 2 * dy - 2 * dx;
12 y++;
13 }
14 }
b) (2 điểm) Trình bày theo từng bước thuật toán Bresenham vẽ đoạn thẳng AB với A=(3,2),
B=(9,6). Chú ý: có vẽ hình minh họa kết quả đoạn thẳng AB.
Câu 2 (3 điểm):
a) (2 điểm) Thực hiện việc xén đoạn thẳng MN vào hình chữ nhật ABCD theo thuật toán
Liang-Barsky. Tọa độ các điểm như sau: M(4,5), N(18,13), A(5,4), B(14,4), C(14,12), D(5,12).
Chú ý: phải trình bày cụ thể quá trình thực hiện và vẽ hình minh họa (trong hình phải ghi rõ thông
tin các điểm xén).
b) (1 điểm) Thực hiện việc xén đoạn thẳng MN vào hình chữ nhật ABCD theo thuật toán
Cohen-Sutherland. Tọa độ các điểm như sau: M(4,11), N(6,14), A(5,4), B(10,4), C(10,12),
D(5,12). Chú ý: phải ghi rõ quá trình thực hiện (không cần vẽ hình).
Câu 3 (3 điểm): Cho tứ giác ABCD với tọa độ các điểm A(0,0), B(5,0), C(4,5), D(1,5).

a) (1 điểm) Tịnh tiến ABCD theo véc-tơ v  (1,2) rồi biến đổi đồng dạng với tỷ lệ theo trục X và Y
lần lượt là 2 và 1, ta được tứ giác A1B1C1D1. Tìm ma trận tổng hợp của phép biến đổi.

b) (1 điểm) Quay A1B1C1D1 một góc 90o quanh gốc tọa độ rồi tịnh tiến theo véc-tơ a  (2,3) , ta
được tứ giác A2B2C2D2. Tìm ma trận tổng hợp của phép biến đổi.
c) (1 điểm) Tìm ma trận biểu diễn phép biến đổi từ ABCD thành A2B2C2D2. Tính tọa độ của
A2B2C2D2 và vẽ hình cho các tứ giác ABCD, A2B2C2D2.
Chú ý: cần tính ra ma trận tổng hợp chứ không dừng lại ở dạng tích của các ma trận thành phần.
Câu 4 (1 điểm): Cho tam giác ABC là hình chiếu của một mặt phẳng trong không gian 3 chiều
xuống mặt phẳng OXY. Thông tin lưu trữ cho mỗi đỉnh gồm tọa độ (x,y) và giá trị độ sâu z của tạo
ảnh của nó được cho như hình vẽ dưới (ví dụ A(10,20,5) có nghĩa là điểm A có tọa độ (x=10, y=20)

Trang 1
và giá trị độ sâu của tạo ảnh, tức độ sâu của điểm tạo nên điểm ảnh A, là z=5). Hãy sử dụng
phương pháp nội suy để tính ra giá trị độ sâu của tạo ảnh tạo nên điểm M (với M là điểm thuộc tam
giác ABC).

(Ghi chú: Cán bộ coi thi không được giải thích gì thêm)

Câu 1.2 a) 1,0


(3 điểm) 0,25đ Phát hiện lỗi ở dòng 6 và lý giải
0,25đ Sửa lỗi dòng 6
0,25đ Phát hiện lỗi ở dòng lệnh tăng y (dòng 11, 12)
0,25đ Lý giải và sửa lỗi tăng y
Chương trình sau khi sửa:
1 void VeDoanThangBresenham(int x1, int y1, int x2, int y2)
2 {
3 int dx = x2 - x1;
4 int dy = y2 - y1;
5 int p = 2 * dy - dx;
6 int y = y1;
7 for (int x = x1; x <= x2; x++)
8 {
9 VeDiem(x, y p);
10 if (p < 0) p += 2 * dy;
11 else
12 {
13 p += 2 * dy - 2 * dx;
14 y++;
15 }
16 }
17 }

Chú ý: Cần thay thế các biểu thức 2*dy và 2*dy-2*dx


bởi các biến Const1 và Const2 để tránh làm lệch lạc
tính chất của thuật toán.
b) 1,5
Bước 0 1 2 3 4 5 6
X 3 4 5 6 7 8 9
Y 2 3 3 4 5 5 6
P 2 -2 6 2 -2 6 2
Điểm 0,25 0,25 0,25 0,25 0,25 0,25

Trang 2
c) 0,5

Câu 2.1 a) Liang-Barsky 2,0


(3 điểm) (1,25 điểm) Thực hiện theo thuật toán
0,25đ Tính Δx, Δy, p, q
0,25đ Tính K1, K2
0,25đ Tính U1, U2
0,25đ Xác định được trường hợp xén
0,25đ Kết quả xén (đoạn M’N’)

(0,75 điểm) Vẽ hình


0,25đ Vẽ MN, ABCD
0,25đ Xác định các điểm xén
0,25đ Kết quả xén

b) Xén Cohen-Sutherland 1,0


0,25đ Bước 1. Tính mã, xác định trường hợp
0,25đ Bước 1. MM’
0,25đ Bước 2. Tính mã, xác định trường hợp
0,25đ Bước 3. Kết luận

Trang 3
Câu 3.5 a) 1,0
(3 điểm) 1 0 0
0.25đ Viết ma trận tịnh tiến  0 1 0
1 2 1
 tt
 2 0 0
0.25đ Viết ma trận đồng dạng  0 1 0 
 0 0 1
 đd
0.5đ Tính ma trận tổng hợp:
1 0 0  2 0 0  2 0 0
 0 1 0   0 1 0   0 1 0
1 2 1  0 0 1  
 tt  đd  2 2 1 
b) 1,0
 0 1 0
0.25đ Viết ma trận Quay 90o :   1 0 0 
 0 0 1
  quay
1 0 0
0.25đ Viết ma trận tịnh tiến  0 1 0
 2 3 1
 tt
0.5đ Tính ma trận tổng hợp:
 0 1 0  1 0 0  0 1 0
 1 0 0   0 1 0   1 0 0
 0 0 1    
  quay  2 3 1 tt  2 3 1 
c) 1,0

Trang 4
0 2 0
0.25đ Tính ma trận tổng hợp:   1 0 0
0 5 1 

 0 0 1  0 2 0   0 5 1
 5 0 1
0.5đ Tính tọa độ:  4 5 1    1 0 0    0 15 1
 1 5 1  0 5 1    5 13 1
    5 7 1

0.25đ Vẽ hình:

Câu 4.9 0.5đ nội suy được giá trị giao điểm x1 và z1 với cạnh AB là: 7.5 và 1,0
(1 điểm) 7.5
0.25đ nội suy được giá trị giao điểm x2 và z2 với cạnh AC là: 11.25 và 8.75
0.25đ nội suy được giá trị độ sâu z tại M: 8

Trang 5

You might also like