Title | bài tập lớn kỹ thuật đồ họa |
---|---|
Author | B18DCCN189 - Đỗ Thị Thu Hà |
Course | Kỹ thuật đồ họa |
Institution | Học viện Công nghệ Bưu chính Viễn thông |
Pages | 31 |
File Size | 1.8 MB |
File Type | |
Total Downloads | 386 |
Total Views | 529 |
Download bài tập lớn kỹ thuật đồ họa PDF
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO: KỸ THUẬT ĐỒ HỌA Đề tài: Dùng Tool và ngôn ngữ lập trình viết một ứng dụng liên quan đến xén tỉa trong 2D và 3D
Thành viên nhóm Nguyễn Việt Cường
B18DCCN070
Đào Văn Đạt
B18DCCN134
Phan Minh Đức
B18DCCN180
Đỗ Thị Thu Hà
B18DCCN189
Phạm Năng Hưng
B18DCCN287
Trần Thanh Khải
B18DCCN299
Phan Văn Thìn
B18DCCN642
Hà Nội, 2021
1 | Page
MỤC LỤC LỜI NÓI ĐẦU
3
A.PHÂN TÍCH BÀI TOÁN
4
1.XÉN TỈA LÀ GÌ?
4
2.CÁC LOẠI XÉN TỈA
4
2.1 Xén tỉa điểm
4
2.2 Xén tỉa đoạn thẳng
4
2.3 Xén tỉa đa giác
5
3. CÁC GIẢI THUẬT XÉN TỈA 3.1 Xén tỉa đoạn thẳng bằng thuật toán Cohen-Sutherland
6 6
3.2 Xén tỉa đoạn thẳng bằng thuật toán Lyangbarsky
11
3.3 Xén tỉa đa giác bằng thuật toán Sutherland-Hogman
13
B.PHÂN TÍCH THIẾT KẾ VÀ DEMO 1.THIẾT KẾ GIAO DIỆN HIỂN THỊ
20 20
1.1 Giao diện thanh chọn
20
1.2 Giao diện bảng vẽ
20
1.3 Hướng dẫn sử dụng demo
21
2.CÀI ĐẶT THUẬT TOÁN
21
2.1 Thuật toán Cohen-Sutherland
21
2.2 Thuật toán Lyangbarsky
24
2.3 Thuật toán Sutherland-Hodgman
28
3.DEMO
29
TÀI LIỆU THAM KHẢO
32
2 | Page
LỜI NÓI ĐẦU Như chúng ta đã thấy trong những năm gần đây sự phát triển vượt bậc về công nghệ đồ họa đã mang lại cho con người chúng ta vô vàn sự tiện nghi, những trải nghiệm mới mẻ, chân thực. Kỹ thuật đồ họa góp phần quan trọng làm cho giao tiếp giữa con người và máy tính trở nên thân thiện hơn. Trong kỹ thuật đồ họa có nhiều thuật toán khác nhau. Xong mỗi thuật toán lại tỏ ra có những ưu việt và hạn chế riêng đối với từng bài toán cụ thể. Là sinh viên khoa Công nghệ thông tin trường Học viện Công nghệ Bưu Chính Viễn Thông. Chúng em cũng được tiếp xúc với môn học Kỹ thuật đồ họa. Với những kiến thức em đã học và được sự hướng dẫn của cô Nguyễn Thị Thanh Tâm chúng em đã thực hiện đề tài “ Dùng tool và ngôn ngữ lập trình viết một ứng dụng liên quan đến xén tỉa trong 2D và 3D”. Có lẽ rằng chương trình và báo cáo của chúng em chưa được chuyên nghiệp, hoàn chỉnh nhất, còn có những thiếu sót. Vì thế em rất mong cô và các bạn có thể góp ý để nhóm em xây dựng đề đạt kết quả tốt nhất có thể.
3 | Page
A. PHÂN TÍCH BÀI TOÁN 1. XÉN TỈA LÀ GÌ? Xén tỉa là tiến trình xác định các điểm của một đối tượng nằm trong hay ngoài cửa sổ hiển thị. Nằm trong được hiển thị, nằm ngoài loại bỏ. Việc loại từng điểm ảnh của đối tượng thường chậm nhất là khi đối tượng mà phần lớn nằm ngoài cửa sổ hiển thị. 2. CÁC LOẠI XÉN TỈA 2.1 Xén tỉa điểm Giả sử (x,y) là tọa độ của một điểm, vậy điểm đó được hiển thị khi thoả mãn: Xmin 0}) Nếu u0 > u1 => Đoạn thẳng nằm ngoài cửa sổ Nếu u0 < u1 => đọa thẳng nằm trong cửa sổ Thay tọa đồ u0, u1 vào phương trình để tìm tọa độ mới : a. Với điểm đầu : x = x1 + x*u0, y = y1 + x*u0 b. Với điểm cuối : x = x1 + x*u1, y = y1 + x*u1
3.3 Xén tỉa đa giác bằng thuật toán Sutherland-Hogman Cho đa giác P bất kì có n cạnh, thuật toán cần tìm ra đa giác P giao với cửa sổ Window (input: Đa giác P; output: P giao Window) 12 | Page
Mỗi cạnh mặt phẳng chia làm 2 phần: nửa mặt phẳng trong và nửa mặt phẳng ngoài.
Cửa sổ quan sát là giao của các nửa mặt phẳng trong của các cạnh.
13 | Page
Dùng từng cạnh của cửa sổ lần lượt xén đa giác ● Bước 1: Xén trái ● Bước 2: Xén phải ● Bước 3: Xén dưới ● Bước 4: Xén trên
Lúc này ta có, + input: Đa giác IN = {P0, P1,.., Pn-1} + output: Đa giác OUT = IN giao W{Wl, Wr, Wb, Wt}
14 | Page
Bước 1: OUT = {} Bước 2: Lặp P: P0 … Pn-1 S là đỉnh kề trước của P Trường hợp 1, P bên trong S bên trong
Trường hợp 2: P bên ngoài, S bên trong
15 | Page
Trường hợp 3: P bên ngoài, S bên ngoài
Trường hợp 4: P bên trong, S bên ngoài
16 | Page
Ta xét ví dụ minh họa sau để hiểu rõ thuật toán hơn. VD: Xén đa giác ABCDEF vào vùng cửa sổ như hình:
17 | Page
18 | Page
B. PHÂN TÍCH THIẾT KẾ VÀ DEMO 1. THIẾT KẾ GIAO DIỆN HIỂN THỊ 1.1Giao diện thanh chọn Bao gồm 4 nút chọn (button) với các chức năng: + Nút Line : vẽ 1 đường thẳng với 2 điểm cho trước
+ Nút ViewPoint : vẽ một hình chữ nhật với 2 điểm cho trước
+ Nút Cut : Thực hiện xén tỉa hình vẽ
+ Nút Delete: Xóa các đối tượng có trong giao diện
1.2 Giao diện bảng vẽ Là một khu vực hình vuông, nền đen với kích thước 400 x 400 19 | Page
1.3Hướng dẫn sử dụng demo - Để vẽ hình: ta chọn nút Line sau đó di chuyển chuột vào vùng giao diện bảng vẽ, click chọn 2 điểm bất kỳ để vẽ 1 đường thẳng - Tương tự như vậy ta cũng chọn sang nút ViewPoint và click chọn 2 điểm (điểm phải trên và điểm trái dưới hoặc điểm trái trên và điểm phải dưới) ở trong vùng giao diện bản vẽ để vẽ ViewPoint. - Để thực hiện thuật toán: chọn nút Cut để xén tỉa hình đã vẽ Chú ý: Nếu như chưa vẽ ViewPoint mà thực hiện xén tỉa thì sẽ không hợp lệ, hộp thông báo chưa vẽ ViewPoint sẽ hiển thị để nhắc nhở - Chọn nút Delete để xóa và làm mới bảng vẽ. 2. CÀI ĐẶT THUẬT TOÁN 2.1Thuật toán Cohen-Sutherland
20 | Page
21 | Page
22 | Page
2.2Thuật toán Lyangbarsky
23 | Page
24 | Page
25 | Page
26 | Page
2.3Thuật toán Sutherland-Hodgman
27 | Page
3. DEMO ❖ Xén tỉa đoạn thẳng
28 | Page
⮚ Kết quả:
❖ Xén tỉa đa giác
29 | Page
⮚ Kết quả
30 | Page
TÀI LIỆU THAM KHẢO [1] Hoàng Kiếm, Dương Anh Đức, Lê Đình Duy, Vũ Hải Quân. Giáo trình cơ sở Đồ hoạ Máy tính, NXB Giáo dục, 2000. [2] Lê Tấn Hùng, Huỳnh Quyết Thắng. Kỹ thuật đồ hoạ máy tính, NXB khoa học và kỹ thuật, 2002. [3] Trịnh Thị Vân Anh. Bài giảng Kỹ thuật đồ họa, Học viện Công nghệ Bưu chính Viễn thông, 2020.
31 | Page...