Tải bản đầy đủ (.pdf) (7 trang)

Đồ họa máy tính - bài tập đồ họa potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (109.63 KB, 7 trang )

BÀI TẬP ĐỒ HỌA
Mục đích
- Củng cố kiến thức môn học
- Rèn luyện kỹ thuật lập trình đồ họa.
Yêu cầu
- Mỗi sinh viên chọn một bài tập (không được trùng nhau)
- Viết báo cáo trình bày những kiến thức cơ sở có liên quan và cài đặt
chương trình demo
- Trình bày bài tập của mình trước lớp theo phân công
- Kết quả đánh giá là điểm .
Bài tập
1. Viết chương trình vẽ bầu trời có 10000 điểm sao, mỗi điểm sao xuất hiện
với một màu ngẫu nhiên. Những điểm sao này hiện lên rồi từ từ tắt cũng rất
ngẫu nhiên.
2. Viết chương trình vẽ lá cờ tổ quốc (Cờ đỏ, sao vàng)
3. Viết chương trình thể hiện dao động của con lắc đơn
4. Viết chương trình thể hiện một ô tô chuyển động ngang qua màn hình. Nếu
gặp biên màn hình thì chuyển động theo chiều ngược lại
5. Viết chương trình mô phỏng sự va đập của một trái bóng trên màn hình.
(Nếu gặp đường biên màn hình thì đổi hướng chuyển động theo định luật
phản xạ ánh sáng)
6. Viết chương trình thực hiện 2 thao tác sau :
a. Khởi tạo chế độ đồ họa, đặt màu nền, đặt màu chữ, định dạng chữ
(settextstyle(f,d,s)), xuất một chuỗi ký tự ra màn hình. Đổi font,
hướng, kích thước.
b. Xuất một chuỗi ra màn hình, chuỗi này có tô bóng (nội dung chuỗi
ký tự, màu tô, màu bóng là được nhập từ bàn phím).
7. Viết chương trình vẽ đoạn thẳng AB với màu color theo giải thuật DDA.
Biết rằng tọa độ A, B, color được nhập từ bàn phím. Trang trí màu nền, ghi
chú các tọa độ A, B ở hai đầu đoạn thẳng.
8. Tương tự như bài tập 3 nhưng sử dụng giải thuật Bresenham. Lưu ý các


trường hợp đặc biệt của hệ số góc.
9. Tổng hợp bài tập 4, viết chương trình vẽ đường thằng bằng giải thuật
Bresenham cho tất cả các trường hợp của hệ số góc. Lưu ý xét trường hợp
đặc biệt khi đường thẳng song song với trục tung hay với trục hoành.
10. Viết chương trình nhập tọa độ 3 điểm A, B, C từ bàn phím. Tìm tọa độ
điểm D thuộc AB sao cho CD vuông góc AB. Vẽ đoạn thẳng AB và CD.
11. Viết chương trình xét vị trí tương đối của 2 đoạn thẳng AB và CD. Biết
rằng trong màn hình đồ họa đoạn thẳng AB và CD được gọi là cắt nhau khi
hai điểm A, B ở về hai phía của CD và ngược lại.
12. Viết chương trình vẽ đường tròn theo giải thuật đơn giản (đối xứng).
13. Viết chương trình vẽ đường tròn theo giải thuật Bresenham.
14. Viết chương trình vẽ đường tròn theo giải thuật MidPoint.
15. Viết chương trình vẽ một đường tròn tâm O bán kính R. Vẽ các đường tròn
đồng tâm với O, có bán kính chạy từ 1 đến R. Sau đó xoá các đường tròn
đồng tâm này và vẽ các đường tròn đồng tâm khác đi từ R đến 1.
16. Viết chương trình vẽ một đường tròn tâm O bán kính R. Hãy vẽ một đoạn
thẳng từ tâm O độ dài R. Hãy quay đoạn thẳng này quanh đường tròn.
17. Viết chương trình vẽ Elippse có bán kính lớn là a, bán kính nhỏ là b và một
đường tròn nội tiếp Elippse. Tô đường tròn bằng các đường tròn đồng tâm.
Sau đó tô elippse bằng các elippse đồng tâm có bán kính lớn chạy từ b đến
a, bán kính nhỏ là b.
18. Viết chương trình vẽ 3 hình chữ nhật, hình vuông và hình bình hành nội
tiếp trong đường tròn.
19. Viết chương trình vẽ một tam giác. Tọa độ các đỉnh được nhập từ bàn
phím, mỗi cạnh có một màu khác nhau.
20. Viết chương trình xét tính lồi lõm của một đa giác bằng cách thiết lập
phương trình đường thẳng đi qua các cạnh của đa giác.
21. Viết chương trình xét tính lồi lõm của một đa giác bằng cách thiết lập các
véc tơ chỉ phương của các cạnh.
22. Viết chương trình vẽ một đa giác n đỉnh, xét xem một điểm P nào đó có

thuộc đa giác không ?
23. Viết chương trình vẽ một đa giác n đỉnh. Tô đa giác bằng giải thuật tô đơn
giản (Tìm xmin, ymin, xmax, ymax).
24. Viết chương trình vẽ một đường tròn. Tô đường tròn bằng giải thuật tô đơn
giản.
25. Viết chương trình vẽ một đa giác n đỉnh. Tô đa giác bằng giải thuật tô biên.
Lưu ý cho các trường hợp của đa giác: hình chữ nhật, đa giác lồi, đa giác
lõm.
26. Viết chương trình vẽ một đường tròn. Tô đường tròn bằng giải thuật tô
biên.
27. Viết chương trình vẽ một đa giác n đỉnh. Tô đa giác bằng giải thuật scan-
line.
28. Viết chương trình vẽ một đường tròn. Tô đường tròn bằng giải thuật tô
scanline.
29. Viết chương trình vẽ hai đường tròn C1 và C2 cắt nhau. Tô phần giao của
hai đường tròn đó. Tô phần bù của C2. Tô phần bù của C1. Lưu ý rằng 3
màu tô này phải khác nhau.
30. Vẽ một hình bình hành bằng cách sử dụng phép tịnh tiến. (Vẽ đoạn thẳng
AB, sau đó tịnh tiến AB thành đoạn thẳng CD//AB, vẽ AD, Tịnh tiến AD
thành BC.
31. Viết chương trình vẽ một hình vuông ABCD
a. Tịnh tiến hình vuông đó đến vị trí khác.
b. Phóng to hình vuông ABCD.
c. Biến dạng hình vuông thành hình thoi.
32. Vẽ một elip, sau đó vẽ thêm 3 elip khác có cùng tâm với elip đã cho, có độ
dãn ở trục Ox là K và Oy là 1.
33. Vẽ một elip nghiêng một góc G độ có các trục không song song với các
trục tọa độ.
34. Vẽ một bông hoa bằng cách vẽ các elip nghiêng một góc G độ với các màu
khác nhau. Vẽ đến khi nào ấn phím bất kỳ thì ngưng.

35. Viết chương trình mô phỏng sự chuyển động của elip bằng cách cho elip
này quay quanh tâm của nó.
36. Viết chương trình mô phỏng sự chuyển động của trái đất quay quanh mặt
trời.
37. Viết chương trình mô phỏng phép tịnh tiến trong mặt phẳng.
38. Viết chương trình mô phỏng phép biến đổi tỉ lệ trong mặt phẳng.
39. Viết chương trình mô phỏng phép quay trong mặt phẳng.
40. Viết chương trình mô phỏng phép biến dạng trong mặt phẳng.
41. Viết chương trình vẽ một đường tròn tâm O bán kính R. Vẽ một đường
kính AB. Quay đường kính này quanh tâm đường tròn.
42. Viết chương trình tạo cửa sổ hình chữ nhật có tọa độ các điểm dưới bên trái
và điểm trên bên phải lần lượt là (Xmin, Ymin) và (Xmax, Ymax). Hãy xét
một điểm P(x,y) có nằm bên trong cửa sổ không ?
43. Sử dụng thuật toán Cohen - Sutherland (phân chia mã vùng) xét bài toán
xén các đoạn thẳng được cho bởi các điểm P1(x1, y1), P2(x2, y2), P3(x3,
y3), P4(x4, y4), P5(x5, y5), P6(x6, y6), P7(x7, y7), và P8(x8, y8) vào cửa
sổ chữ nhật.
44. Cài đặt thuật toán clipping đường Liang-Barsky lên hệ thống của bạn.
45. Hãy nghĩ ra một thuật toán để thực hiện việc clipping đường bằng cách
dùng phương pháp phân chia điểm ở giữa. Sự cài đặt phần mềm của thuật
toán này có thuận lợi hơn hai thuật toán clipping đường đã được thảo luận
trong chương không?
46. Thay đổi thuật toán clipping đa giác để cắt các vùng đa giác lõm một cách
hợp lý. (Một phương pháp để thực hiện điều này là chia đa giác lõm ra làm
các đa giác lồi.)
47. Viết thủ tục để cắt một ellipse bằng cách dùng cửa sổ chữ nhật.
48. Hãy phát triển một thuật toán clipping văn bản để cắt các kí tự đơn lẻ, giả
sử rằng các kí tự được định nghĩa trong một lưới điểm (pixel grid).
49. Viết một thủ tục thực hiện xóa một phần bất kì của hình ảnh đã được định
nghĩa, dùng kích thước cửa sổ xóa được xác định bất kỳ.

50. Viết các thủ tục để cài đặt các lệnh của cửa sổ và vùng quan sát. Tức là, các
thủ tục có chứa tham số về hệ tọa độ trong các lệnh để thực hiện biến đổi
sang vùng quan sát cho các cảnh cụ thể: clipping trong hệ tọa độ thế giới
thực, chuyển đổi sang hệ tọa độ chuẩn hóa, sau cùng biến đổi đến hệ tọa độ
thiết bị.
51. Viết chương trình mô phỏng phép tịnh tiến trong không gian 3 chiều.
52. Viết chương trình mô phỏng phép biến đổi tỉ lệ trong không gian 3 chiều.
53. Viết chương trình mô phỏng phép quay trục trong không gian 3 chiều.
54. Cài đặt một khối đa diện (ba chiều với các mặt phẳng) nằm trong góc 1/8
đầu tiên của hệ tọa độ theo quy tắc bàn tay trái (tất cả các giá trị định nghĩa
các đỉnh của đối tượng là dương). Phát triển một thủ tục (procedure) để
thực hiện phép chiếu song song (được xác định bất kỳ) lên mặt phẳng xy.
55. Cài đặt một khối đa diện (ba chiều với các mặt phẳng) nằm trong góc 1/8
đầu tiên của hệ tọa độ theo quy tắc bàn tay trái (tất cả các giá trị định nghĩa
các đỉnh của đối tượng là dương). Thực hiện các phép quay đối tượng
quanh các trục của hệ tọa độ.
56. Cài đặt một khối đa diện (ba chiều với các mặt phẳng) nằm trong góc 1/8
đầu tiên của hệ tọa độ theo quy tắc bàn tay trái (tất cả các giá trị định nghĩa
các đỉnh của đối tượng là dương). Thực hiện một phép chiếu phối cảnh bất
kỳ.
57. Viết một chương trình thực hiện chiếu phối cảnh một hình chóp cụt thành
một hình hộp thông thường.
58.Thay đổi thuật toán clipping đường Liang-Barsky hai chiều để cắt
(clip) các đường ba chiều bởi một bởi một hình hộp (đã được xác
định).
59.Viết chương trình vẽ đường cong Bezier.
60.Viết chương trình vẽ đường cong Bspline.
61.Viết chương trình vẽ đồ thị các hàm số sơ cấp.
DANH SÁCH SINH VIÊN LỚP CDTH10TH
ĐĂNG KÝ BÀI TẬP LỚN MÔN ĐỒ HỌA MÁY TÍNH

TT
Họ và tên
Đề
tài số
Tên Đề tài
1.
Nguyễn Thị
An
2.
Lê Thị Ngọc
Anh
3.
Phạm Tuấn
Anh
4.
Lê Trung
Anh
5.
Nguyễn Quảng
Bắc
6.
Lục Văn
Chiến
7.
Phạm Ngọc
Chiến
8.
Nguyễn Văn
Công
9.

Bùi Văn
Duy
10.
Lê Hữu
Duy
11.
Trần Đức
Đạt
12.
Nguyễn Văn
Giáp
13.
Đỗ Hải

14.
Đặng Ngọc
Hải
15.
Đinh Thị Thanh
Hải
16.
Nguyễn Quảng
Hải
17.
Lê Xuân
Hải
18.
Trần Thị
Hải
19.

Nguyễn Bá
Hiền
20.
Lê Xuân
Hiệp
21.
Nguyễn Văn
Hưng
22.
Đỗ Xuân
Hưng
23.
Cao Văn
Kế
24.
Trịnh Văn
Kiên
25.
Phạm Tùng
Lâm
26.
Lê Văn
Luân
27.
Nguyễn Thị
Thảo
Nam
28.
Trịnh Duy
Nam

29.
Phùng Văn
Nguyê
n
30.
Nguyễn Đình
Quý
31.
Chu Văn
Sơn
32.
Lê Hồng
Sang
33.
Hoàng Văn
Sỹ
34.
Vũ Văn
Tài
35.
Khương Anh
Tâm
36.
Hoàng Thị
Thơm
37.
Hớ Ngọc
Thanh
38.
Nguyễn Văn

Thanh
39.
Lê Thị
Thảo
40.
Nguyễn Văn
Thịnh
41.
Hoàng Anh
Thọ
42.
Phan Thị
Thủy
43.
Lê Văn
Thủy
44.
Trương Khắc
Tiến
45.
Lê Huyền
Trang
46.
Vũ Văn
Tuấn
47.
Nguyễn Ngọc
Tuấn
48.
Nguyễn Đình

Tùng
49.
Phí Trang
Tùng
50.
Lương Thanh
Tùng
51.
Nguyễn Trọng

52.
Bùi Thị
Vân
53.
Nguyễn Tuấn
Việt
54.
Trương Tiến

×