Đề thi thực hành chính thức môn đồ họa máy tính phần đồ họa 2 chiều
Bạn đang xem tài liệu "Đề thi thực hành chính thức môn đồ họa máy tính phần đồ họa 2 chiều", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- de_thi_thuc_hanh_chinh_thuc_mon_do_hoa_may_tinh_phan_do_hoa.doc
Nội dung text: Đề thi thực hành chính thức môn đồ họa máy tính phần đồ họa 2 chiều
- Đề thi thực hành phần Đồ Họa 2 chiều Đồ Họa Máy Tính TH01/01 và TH01/02 ĐỀ THI THỰC HÀNH CHÍNH THỨC MÔN ĐỒ HỌA MÁY TÍNH PHẦN ĐỒ HỌA 2 CHIỀU LỚP TH01/01 VÀ TH01/02 1 Quy định chung Mỗi nhóm gồm tối đa 4 sinh viên chọn thực hiện MỘT trong hai đề thi thực hành dưới đây (phần Đồ Họa 2 chiều). Mỗi sinh viên tham gia duy nhất 1 nhóm trong phần Đồ Họa 2 chiều. Các sinh viên học khác lớp lý thuyết môn Đồ Họa máy tính hoặc đăng ký thực hành các ca khác nhau có thể làm chung 1 nhóm. Trong báo cáo của mỗi bài thực hành, nhóm sinh viên phải ghi rõ việc phân công thực hiện bài làm để GV đánh giá điểm cho từng thành viên trong nhóm. Cách chấm điểm: o Bài thực hành phần Đồ Họa 2 chiều sẽ được tính trên thang điểm 10. oTỷ lệ phần trăm điểm thực hành Đồ Họa 2 chiều trong điểm tổng kết môn học sẽ được thông báo sau. Sinh viên được phép tham khảo các chương trình, ví dụ mẫu, được phép sử dụng các bộ thư viện hỗ trợ trong quá trình thực hiện bài thi. Những bài thi xuất sắc sẽ được đề nghị cộng điểm vào bài thi lý thuyết. Một số bài làm xuất sắc nhất sẽ được xét miễn thi lý thuyết. Những bài thực hành muốn được xét miễn thi lý thuyết cần phải nộp trước thời hạn nộp bài thi thực hành (theo thông báo của GV). Nếu không được xét miễn thi thì bài thực hành sẽ nộp lại chung với cả lớp để chấm điểm thi thực hành. Sinh viên không được phép sao chép bài làm của các khóa trước hoặc bài làm của các nhóm khác cùng khóa. Trường hợp vi phạm sẽ bị điểm 0. Ghi chú: Ngoài bài thực hành phần Đồ Họa 2 chiều, mỗi nhóm sinh viên cần thực hiện đồ án môn học (đã được thông báo trong giờ học Lý thuyết). 1
- Đề thi thực hành phần Đồ Họa 2 chiều Đồ Họa Máy Tính TH01/01 và TH01/02 2 Đề bài 1 Xây dựng chương trình minh họa trực quan các thuật toán đồ họa 2 chiều Thang điểm: Yêu cầu Điểm tối đa (thang điểm 10) 1 Báo cáo 2.0 2 Yêu cầu cơ bản 8.0 2.1 Các thuật toán vẽ đường 2.0 2.2 Các thuật toán tô màu 2.0 2.3 Các thuật toán xén đoạn thẳng, xén đa giác 2.0 2.4 Các phép biển đổi 2 chiều 2.0 3 Các chức năng mở rộng +5.0 2.1 Báo cáo (2/10) Mỗi bài thi thực hành phải kèm theo 1 bài báo cáo (không cần in ra giấy, chỉ cần lưu trong file DOC). Nội dung báo cáo: trình bày các vấn đề chính trong việc xử lý chương trình, các cấu trúc dữ liệu chính, các giải thuật xử lý việc minh họa các thuật toán, giới thiệu các chức năng và cách sử dụng chương trình, môi trường và ngôn ngữ lập trình đã được sử dụng Trong báo cáo cần ghi rõ thông tin về các sinh viên trong nhóm (họ tên, MSSV, điện thoại hoặc e-mail liên lạc). 2.2 Yêu cầu cơ bản (8/10) Xây dựng chương trình minh họa trực quan các thuật toán đồ họa 2 chiều: 2.2.1 Các thuật toán vẽ đường (2/10) Cho phép người sử dụng vẽ các đối tượng đồ họa cơ sở, ví dụ như: Đường thẳng (thuật toán DDA và MidPoint) Thuật toán MidPoint để vẽ các đối tượng conic: . Đường tròn x 2 y 2 . Ellipse 1 2 2 a b . Parabol (y ax 2 hay x ay 2 ) x 2 y 2 y 2 x 2 . Hyperbol 1 hay 1 a 2 b 2 b 2 a 2 Gợi ý: Chọn loại đường cần vẽ Chọn thuật toán (nếu cần) Xác định đối tượng cần vẽ trên lưới điểm Minh họa từng bước của thuật toán vẽ đường với đối tượng đã được xác định 2.2.2 Các thuật toán tô màu (2/10) Minh họa các thuật toán tô màu: Thuật toán Scanline Thuật toán Boundary Fill Thuật toán tô màu theo dòng quét cải tiến (SGK trang 73, 74) (không bắt buộc – xem như tính năng mở rộng) Gợi ý: Cho người sử dụng xác định 1 đa giác trên lưới điểm 2
- Đề thi thực hành phần Đồ Họa 2 chiều Đồ Họa Máy Tính TH01/01 và TH01/02 Cho người sử dụng chọn điểm bắt đầu tô (trong trường hợp Boundary Fill và tô màu theo dòng quét cải tiến) 2.2.3 Các thuật toán xén đoạn thẳng, xén đa giác (2/10) 2.2.3.1 Các thuật toán xén đoạn thẳng: Minh họa các thuật toán xén đoạn thẳng: Thuật toán Cohen-Sutherland Thuật toán Liang-Barsky Gợi ý: Cho người sử dụng xác định cửa sổ xén (clip window) Cho người sử dụng xác định 1 đoạn thẳng cần xén Áp dụng thuật toán được chọn để xén đoạn thẳng 2.2.3.2 Các thuật toán xén đa giác Minh họa các thuật toán xén đa giác: Thuật toán Sutherland-Hodgeman Thuật toán Weiler – Atherton (không bắt buộc – xem như tính năng mở rộng) Gợi ý: Cho người sử dụng xác định cửa sổ xén (clip window - đối với thuật toán Sutherland- Hodgeman) hoặc đa giác xén (đối với thuật toán Weiler – Atherton) Cho người sử dụng xác định đa giác cần xén Áp dụng thuật toán được chọn để xén đa giác 2.2.4 Các phép biến đổi 2 chiều (2/10) Cho phép người sử dụng thực hiện các phép biến hình trên đối tượng được chọn: y y y Q try (2,3) (4,3) P trx (6,1) (8,1) x x (a) (b) x Phép tịnh tiến Phép quay y y (1,3) (3,3) (10,3) (12,3) (2,3) (4,3) (5,1.5) (10,1.5) (1,1) (3,1) (4,1) (6,1) x x Phép biến đổi tỉ lệ Phép biến dạng (theo chiều dọc hoặc theo chiều ngang) Gợi ý: Cho phép người sử dụng xác định 1 đa giác trên lưới điểm Cho phép người sử dụng thực hiện các thao tác biến đổi 2 chiều (sử dụng mouse) 2.3 Các chức năng mở rộng (+5/10) Sinh viên được khuyến khích chủ động xây dựng các tính năng mở rộng trong chương trình. Dưới đây là một số gợi ý về các chức năng mở rộng của chương trình. Ngoài các chức năng được trình bày dưới đây, những tính năng nâng cao khác do sinh viên chủ động đề nghị và xây dựng trong chương trình đều được đánh giá khuyến khích Một số gợi ý về các chức năng mở rộng: 3
- Đề thi thực hành phần Đồ Họa 2 chiều Đồ Họa Máy Tính TH01/01 và TH01/02 Tìm hiểu và cài đặt minh họa một số thuật toán đồ họa 2 chiều khác Cho phép minh họa từng bước của các thuật toán (xây dựng chức năng Play, Stop, Next, Prev ) Cho phép người sử dụng chọn các thuộc tính của các đối tượng đồ họa Cho phép chọn màu và nét vẽ (PS_SOLID, PS_DOT, PS_DASH, PS_DASHDOT, PS_DASHDOTDOT, PS_NULL) để vẽ các điểm trên đường biên các đối tượng Cho phép vẽ các điểm trên đường biên với màu biến đổi dần (gradient) Cho phép chọn cách tô màu các điểm bên trong đa giác, bao gồm: . Màu tô . Kiểu tô: Kiểu tô màu đặc Kiểu tô theo mẫu có sẵn Kiểu tô gradient Tô màu với mẫu tô bất kỳ: người sử dụng có thể chọn mẫu tô được lưu trong ảnh bitmap. Cho phép lưu trữ hình vẽ trên màn hình ra tập tin hình ảnh Cho phép lưu ra file bitmap (*.BMP) Có thể mở rộng cho các format ảnh khác như JPG, GIF, TIF, PNG Sinh viên có thể sử dụng các thư viện hỗ trợ. Chức năng phóng to, thu nhỏ lưới điểm Xây dựng phần bài học lý thuyết và bài tập kiểm tra lý thuyết các thuật toán phần đồ họa 2 chiều Các yêu cầu khác Xây dựng phần cài đặt (install/uninstall) Xây dựng phần hướng dẫn sử dụng kèm theo trong chương trình. Xây dựng phần Demo giới thiệu các tính năng chương trình. 4
- Đề thi thực hành phần Đồ Họa 2 chiều Đồ Họa Máy Tính TH01/01 và TH01/02 3 Đề bài 2 Xây dựng chương trình vẽ đồ họa 2D dạng vector CAD Ghi chú: tham khảo các tính năng của chương trình Microsoft Visio, Smartdraw Thang điểm: Yêu cầu Điểm tối đa (thang điểm 10) 1 Báo cáo 2.0 2 Yêu cầu cơ bản 5.0 2.1 Vẽ các đối tượng đồ họa 2 chiều 2.0 2.2 Chọn thuộc tính của các đối tượng đồ họa 2.0 2.3 Lưu trữ và phục hồi các đối tượng 1.0 2 Yêu cầu mở rộng 3.0 2.1 Thay đổi các thuộc tính cơ bản của các đối tượng 1.0 2.2 Các phép biến hình trên các đối tượng 1.0 2.3 Thay đổi thứ tự trên-dưới giữa các đối tượng 1.0 3 Các chức năng mở rộng +5.0 3.1 Báo cáo (2/10) Mỗi bài thi thực hành phải kèm theo 1 bài báo cáo (không cần in ra giấy, chỉ cần lưu trong file DOC). Nội dung báo cáo: trình bày các vấn đề chính trong việc xử lý chương trình, các cấu trúc dữ liệu chính, các giải thuật xử lý, giới thiệu các chức năng và cách sử dụng chương trình, môi trường và ngôn ngữ lập trình đã được sử dụng Trong báo cáo cần ghi rõ thông tin về các sinh viên trong nhóm (họ tên, MSSV, điện thoại hoặc e-mail liên lạc). 3.2 Yêu cầu cơ bản (8/10) 3.2.1 Vẽ các đối tượng đồ họa 2 chiều (2/10) Cho phép người sử dụng vẽ các đối tượng đồ họa 2 chiều dưới dạng vector: Đường thẳng, hình chữ nhật, hình bình hành, đa giác, đường gấp khúc Đường tròn, ellipse, parabol, hyperbol, cung (1/2 ellipse) Đường cong Bezier Ký tự Cho phép người sử dụng chọn để xóa một số đối tượng được chọn hay xóa toàn bộ bản vẽ. 3.2.2 Chọn các thuộc tính của các đối tượng đồ họa (2/10) Cho phép thay đổi các thuộc tính của đối tượng Chọn và thay đổi các thuộc tính của đường biên đối tượng, bao gồm . Màu . Loại nét vẽ: PS_SOLID, PS_DOT, PS_DASH, PS_DASHDOT, PS_DASHDOTDOT, PS_NULL. . Độ dày nét vẽ: Nếu nét vẽ có độ dày >1 thì loại nét vẽ là PS_SOLID. Cho phép người sử dụng thay đổi cách tô màu bên trong đối tượng khép kín (đường tròn, hình chữ nhật, đa giác, ellipse ), bao gồm: . Màu tô . Kiểu tô: Kiểu tô màu đặc (Sử dụng hàm CreateSolidBrush của CBrush) Kiểu tô theo mẫu có sẵn (Sử dụng hàm CreateHatchBrush của CBrush) Chọn font chữ 5
- Đề thi thực hành phần Đồ Họa 2 chiều Đồ Họa Máy Tính TH01/01 và TH01/02 3.2.3 Lưu trữ và phục hồi các đối tượng (1/10) Cho phép người dùng lưu trữ bản vẽ xuống đĩa, nạp bản vẽ có sẵn từ đĩa lên: Sinh viên tự định nghĩa cấu trúc file dùng để lưu trữ các đối tượng. Cho phép người sử dụng lưu trữ các đối tượng đã vẽ ra file theo cấu trúc đã được định nghĩa. Cho phép người sử dụng đọc nội dung của file theo cấu trúc đã định nghĩa và xây dựng lại toàn bộ các đối tượng đã được lưu trữ trong file này. 3.3 Các chức năng mở rộng (3/10) 3.3.1 Thay đổi các thuộc tính cơ bản của các đối tượng Cho phép người sử dụng thay đổi các thuộc tính cơ bản của các đối tượng: Cho phép người sử dụng chọn đối tượng đã được vẽ. Với đối tượng được chọn, cho phép thay đổi các thuộc tính về nét vẽ (màu, độ dày, loại nét vẽ), cách tô màu (màu, kiểu tô), font chữ 3.3.2 Thực hiện các phép biến hình trên các đối tượng Cho phép người sử dụng thực hiện các phép biến hình trên đối tượng được chọn y y y Q try (2,3) (4,3) P trx (6,1) (8,1) x x (a) (b) x Phép tịnh tiến Phép quay y y (1,3) (3,3) (10,3) (12,3) (2,3) (4,3) (5,1.5) (10,1.5) (1,1) (3,1) (4,1) (6,1) x x Phép biến đổi tỉ lệ Phép biến dạng (theo chiều dọc hoặc theo chiều ngang) 3.3.3 Thay đổi thứ tự trên-dưới giữa các đối tượng Cho phép thay đổi thứ tự trên-dưới giữa các đối tượng: Send to back: đưa đối tượng được chọn về vị trí dưới cùng Bring to front: đưa đối tượng được chọn lên vị trí trên cùng Send backward: đưa đối tượng xuống dưới 1 vị trí Bring forward: đưa đối tượng lên 1 vị trí 3.4 Các chức năng nâng cao (+5/10) Sinh viên được khuyến khích chủ động xây dựng các tính năng nâng cao trong chương trình. Dưới đây là một số gợi ý về các chức năng nâng cao của chương trình. Sinh viên không cần thực hiện tất cả các yêu cầu được gợi ý dưới đây. Ngoài các chức năng được trình bày dưới đây, những tính năng nâng cao khác do sinh viên chủ động đề nghị và xây dựng trong chương trình đều được đánh giá khuyến khích. 3.4.1 Các chức năng trên đối tượng phức hợp Định nghĩa: Đối tượng phức hợp được xây dựng bằng cách kết hợp các đối tượng đơn giản hơn. 6
- Đề thi thực hành phần Đồ Họa 2 chiều Đồ Họa Máy Tính TH01/01 và TH01/02 Ví dụ: Đối tượng phức hợp được Đối tượng phức hợp được Đối tượng phức hợp được tạo bởi 3 đoạn thẳng tạo bởi 7 đoạn thẳng tạo bởi 2 đoạn thẳng, 1 ellipse và 1 cung (nửa ellipse) Xây dựng chức năng Group/Ungroup: Group: kết hợp các đối tượng đồ họa thành một đối tượng phức hợp Ungroup: phân rã một đối tượng phức hợp thành các đối tượng đơn giản Cho phép thao tác trên các đối tượng phức hợp tương tự như các đối tượng đơn Cho phép xây dựng thư viện các đối tượng đồ họa cơ bản để sử dụng lại. 3.4.2 Đường liên kết giữa các đối tượng đồ họa Cho phép vẽ các đường liên kết giữa các đối tượng đồ họa. Gợi ý: mỗi đối tượng đồ họa cơ sở có 1 sổ điểm kiểm soát chính. Đường liên kết sẽ nối liền giữa một cặp điểm kiểm soát chính của 2 đối tượng Tự động cập nhật đường liên kết khi di chuyển các đối tượng gắn liền với đường liên kết này. Đường liên kết nối liền 2 điểm kiểm soát của Đường liên kết được cập nhật sau khi di 2 hình chữ nhật chuyển vị trí của hình chữ nhật 3.4.3 Chức năng liên quan đến gridlines Chương trình cho phép người sử dụng tự định nghĩa các gridlines (theo chiều ngang và chiều dọc) Khi di chuyển các đối tượng đến gần gridline, đối tượng sẽ bám vào gridline tương ứng. 3.4.4 Chức năng copy các đối tượng Chức năng copy, cut, paste, delete các đối tượng (đơn, phức hợp) trong chương trình Chức năng nhúng bản vẽ vào các ứng dụng khác: Mức độ 1: Chương trình sẽ lưu vào clipboard ảnh (dạng bitmap) của các đối tượng được chọn để người sử dụng có thể đưa hình ảnh này vào các ứng dụng khác Mức độ 2: Chương trình cho phép nhúng bản vẽ vào các ứng dụng khác dưới dạng OLE 3.4.5 Script Sinh viên tự định nghĩa cú pháp các lệnh cơ bản để thực hiện một bản vẽ bằng file kịch bản (có thể bổ sung lệnh lặp, delay ) Chương trình cho phép xây dựng bản vẽ từ file kịch bản. Ví dụ: bản vẽ tương ứng với kịch bản sau sẽ gồm 2 đối tượng: 1 đường thẳng (100, 100, 200, 200) màu đỏ, 1 ellipse nội tiếp hình chữ nhật (0, 0, 50, 70) có đường viền màu đỏ, màu tô là màu xanh lá cây 7
- Đề thi thực hành phần Đồ Họa 2 chiều Đồ Họa Máy Tính TH01/01 và TH01/02 Number of Objects: 2 SetColor 255, 0, 0 Line 100, 100, 200, 200 SetFillColor 0, 255, 0 Ellipse 0, 0, 50, 70 3.4.6 Các chức năng khác Thao tác trên các file ảnh: Cho phép lưu trữ ra file bitmap (*.BMP) Cho phép đọc file bitmap và hiển thị lên màn hình Có thể mở rộng cho các format ảnh khác như JPG, GIF, TIF, PNG Sinh viên có thể sử dụng các thư viện hỗ trợ. Chức năng Undo/Redo Cho phép người sử dụng undo hoặc redo các thao tác xử lý trên bản vẽ. Cho phép vẽ các đường biên theo các kiểu nét vẽ PS_DOT, PS_DASH, PS_DASHDOT, hay PS_DASHDOTDOT có độ dày>1. Cho phép vẽ các đường với dấu mũi tên ở đầu (cho phép chọn và thay đổi lọai mũi tên). Ví dụ: Cho phép tô màu đối tượng khép kín với các mẫu tô bất kỳ (người sử dụng có thể chọn mẫu tô được lưu trong ảnh bitmap, sử dụng hàm CreatePatternBrush) hoặc kiểu tô gradient Chức năng hiển thị phóng to/ thu nhỏ bản vẽ Đóng gói ứng dụng: Cài đặt ứng dụng (install/uninstall) Xây dựng phần hướng dẫn sử dụng kèm theo trong chương trình. Xây dựng phần Demo giới thiệu các tính năng chương trình. 8
- Đề thi thực hành phần Đồ Họa 2 chiều Đồ Họa Máy Tính TH01/01 và TH01/02 4 Một số điểm cần lưu ý 4.1 Môi trường cài đặt Sinh viên có thể chọn sử dụng 1 trong các môi trường lập trình sau: Visual C++, C#, Java. 4.2 Cấu trúc của bài thi thực hành phần Đồ Họa 2 chiều Mỗi bài thi được tổ chức như sau: o Thư mục DOCUMENT: chứa tập tin báo cáo (WinWord). o Thư mục SOURCE: chứa toàn bộ các tập tin chương trình nguồn và các tập tin cần thiết o Thư mục RELEASE: chứa các tập tin chương trình thi hành và các tập tin cần thiết o Thư mục SETUP: chứa các tập tin dùng để cài đặt chương trình (nếu có) o File Readme.txt: bao gồm thông tin về các sinh viên trong nhóm (họ tên và MSSV), ngôn ngữ lập trình đã được sử dụng, điện thoại hoặc e-mail liên lạc. Không chép các file không cần thiết trong thư mục Debug hay Release vào bài thi. 4.3 Hình thức nộp bài Thời điểm, địa điểm và hình thức nộp bài sẽ thông báo sau. Mọi vấn đề thắc mắc, sinh viên cần liên hệ với GVHD: Thầy Bùi Tiến Lên: btlen@fit.hcmuns.edu.vn Thầy Trần Minh Triết: tmtriet@fit.hcmuns.edu.vn Thầy Nguyễn Đức Hoàng Hạ: ndhha@fit.hcmuns.edu.vn Thầy Nguyễn Văn Khiết: nvkhiet@fit.hcmuns.edu.vn Thầy Lê Đức Duy Nhân: lddnhan@fit.hcmuns.edu.vn Cô Nguyễn Lưu Thùy Ngân: nltngan@fit.hcmuns.edu.vn Thầy Đỗ Xuân Quang: dxquang@fit.hcmuns.edu.vn Ngày 3 tháng 11 năm 2003 GVHD 9