xây dựng chương trình, tìmkiếm trên bề rộng đồ thị, hiển thị ở nhiều dạng, như 2D, 3D, học phần đồ họa máy tính, báo cáo bài tập lớn
TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN -*** - BÁO CÁO BÀI TẬP LỚN HỌC PHẦN “ĐỒ HỌA MÁY TÍNH” Đề tài: XÂY DỰNG CHƯƠNG TRÌNH TÌM KIẾM KIẾM TRÊN BỀ RỘNG ĐỒ THỊ ĐỒ THỊ HIỂN THỊ Ở NHIỀU DẠNG NHƯ 2D,3D GVHD: ThS Nguyễn Hạnh Phúc Sinh viên thực hiện: Nguyễn Văn Hoan– Mã sv: 68651 Nguyễn Văn Linh – Mã sv: 34567 Hải Phòng, tháng 04 năm 2019 TRƯỜNG ĐẠI HỌC HÀNG HẢI KHOA CÔNG NGHỆ THÔNG TIN BỘ MƠN KHOA HỌC MÁY TÍNH -*** - BÀI TẬP LỚN HỌC PHẦN: ĐỒ HỌA MÁY TÍNH Mã đề tài: 03 Tên đề tài Xây dựng chương trình tìm kiếm theo bề rộng đồ thị Đồ thị hiển thị nhiều dạng 2D,3D Mục đích Xây dựng chương trình tìm kiếm theo bề rộng đồ thị Sử dụng đồ họa máy tính thư viện OpenGL Công việc cần thực Tìm hiểu thuật toán BFS ( Breadth First Search ) kĩ thuật đồ họa sử dụng thư viện openGL Xây dựng hàm thuật toán tìm kiếm theo bề rộng đồ thị Xây dụng hàm vẽ hình tròn để mơ tả điểm đồ thị Xây dựng hàm vẽ đường thẳng mục đích nối điểm đồ thị Xây dựng hàm truyền giá trị cho điểm Mục đích đánh dấu điểm Xây dựng chương trình hoàn trỉnh việc sử dụng hàm Làm báo cáo tập lớn Bảo vệ tập lớn Yêu cầu Kết làm tập lớn: Báo cáo tập lớn Báo cáo tập lớn phải trình bày theo mẫu quy định (kèm theo), báo cáo kết xuất thành tệp định dạng PDF nộp qua email (không bắt buộc phải in ấn) Hạn nộp báo cáo tập lớn: 21/04/2019 Tài liệu tham khảo - Trịnh Thị Vân Anh, Kỹ Thuật Đồ Họa NXB HVCN BCVT, 2006 - Bài giảng Đồ Họa Máy Tính Khoa CNTT, ĐH HH VN Hải Phòng, tháng 04 năm 2019 NGƯỜI HƯỚNG DẪN Mục Lục TÌM HIỂU CHƯƠNG TRÌNH 1.1 Nền tảng chương trình .6 1.2 Giới thiệu chương trình .6 1.3 Cách thêm thư viện openGL Visual Studio .6 CẤU TRÚC DỮ LIỆU VÀ HÀM TRONG CHƯƠNG TRÌNH 2.1 Cấu trúc liệu .9 2.2 Các hàm chương trình 2.2.1 Hàm vẽ hình tròn 2.2.2 Hàm truyền tọa độ để vẽ hình .9 2.2.3 Hàm vẽ đường thẳng 10 2.2.4 Hàm truyền số vào hình tròn 11 2.2.5 Hàm thuật toán bfs .12 2.2.6 Hàm Main 15 KẾT LUẬN .16 LỜI MỞ ĐẦU Như thấy năm gần sự phát triển vượt bậc công nghệ đồ họa mang lại cho người sự tiện nghi, trải nghiệm mẻ, chân thực Vậy đồ họa máy tính gì : Đồ họa máy tính phương pháp cơng nghệ dùng việc chuyển đổi qua lại liệu hình ảnh máy tính Đồ họa máy tính lĩnh vực khoa học máy tính nghiên cứu toán học, thuật toán kĩ thuật phép tạo, hiển thị điều khiển hình ảnh hình máy tính Đồ họa máy tính có liên quan nhiều đến số lĩnh vực đại số, hình học giải tích, hình học họa hình, quang học, kĩ thuật máy tính, đặc biệt chế tạo phần cứng (các loại hình, thiết bị xuất, nhập, vỉ mạch đồ họa ) Là sinh viên khoa Công nghệ thông tin trường Đại học Hàng Hải Việt Nam Chúng em tiếp xúc với môn học đồ họa máy tính Với kiến thức em học sự hướng dẫn thầy Nguyễn Hạnh Phúc chúng em thực đề tài “ Xây dựng chương trình tìm kiếm theo bề rộng đồ thị Đồ thị thị nhiều dạng 2D, 3D” Trong trình thực nghiên cứu chúng em sử dụng thư viện đồ họa openGL sử dụng rộng rãi Có lẽ chương trình báo cáo chúng em chưa chuyên nghiệp, hoàn chỉnh nhất, có thiếu xót Vì em mong thầy bạn góp ý để nhóm em xây dựng đề đạt kết tốt 1 TÌM HIỂU CHƯƠNG TRÌNH 1.1Nền tảng chương trình Chương trình viết ngơn ngữ lập trình C++ Chương trình có sử dụng thư viện đồ họa hỗ trợ OpenGl 1.2Giới thiệu chương trình Chương trình tìm kiếm theo bề rộng đồ thị Để thục chương trình cần nhập vào số cạnh đồ thị Các điểm nối với đồ thị điểm bắt đầu để duyệt đồ thị Trong chương trình có sử dụng thư viện openGl vì để chạy chương trình mà không phát sinh lỗi thì nên thêm thư viện openGL vào IDE mà bạn đnag lập trình 1.3Cách thêm thư viện openGL Visual Studio I Cài đặt Visual Studio Nếu chưa cài đặt Visual Studio máy tính thực bước sau Tải tập tin cài đặt Visual Studio C++ từ http://www.microsoft.com/express/Downloads/ Thực thi tập tin cài đặt làm theo hướng dẫn để cài đặt Visual Studio C++ II Cài đặt thư viện GLUT Tải tập tin "glut-3.7.6-bin-32and64.zip" từ http://www.mediafire.com/? 12ncmty5g6mgr7t Giải nén tập tin glut-3.7.6-bin-32and64.zip thư mục glut-3.7.6-bin Trong thư mục glut-3.7.6-bin: Với phiên Windows 32bit (viết ứng dụng 32 bit) Sao chép tập tin glut.h glut.def vào thư mục C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl Sao chép tập tin glut32.lib vào thư mục C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib Sao chép tập tin glut32.dll vào thư mục C:\windows\system32\ Với phiên Windows 64bit (viết ứng dụng 32 bit 64 bit) Sao chép tập tin glut.h glut.def vào thư mục C:\Program Files(x86)\Microsoft SDKs\Windows\v7.0A \Include\gl Sao chép glut32.lib glut64.lib vào thư mục C:\Program Files(x86)\Microsoft SDKs\Windows\v7.0A\Lib Sao chép glut32.lib glut64.lib vào thư mục C:\Program Files(x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64 Sao chép tập tin glut32.dll glut64.dll vào thư mục C:\windows\SysWOW64 Sao chép tập tin glut32.dll glut64.dll vào thư mục C:\windows\system32 III Cài đặt GLEW (Nên cài đặt) Tải tập tin "Windows 32-bit and 64-bit Binaries" từ http://glew.sourceforge.net/ Giải nén tập tin glew-1.10.0-win32.zip vào thư mục có tên glew Với phiên Windows 32bit Sao chép tất tập tin thư mục include/GL vào thư mục C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl Sao chép tập tin glew32.lib thư mục lib/Release/Win32/ vào thư mục C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib Sao chép tập tin glew32.dll thư mục bin/Release/Win32/ vào thư mục C:\windows\system32 Với phiên Windows 64bit Sao chép tất tập tin thư mục include/GL vào thư mục C:\Program Files(x86)\Microsoft SDKs\Windows\v7.0A \Include\gl Sao chép tập tin glew32.lib thư mục lib/Release/x64/ vào thư mục C:\Program Files(x86)\Microsoft SDKs\Windows \v7.0A\Lib Sao chép tập tin glew32.dll thư mục bin/Release/x64/ vào thư mục C:\windows\SysWOW64 IV Tạo Visual Studio C++ project với OpenGL - Mở chương trình Visual Studio C++ - Nhấn vào mục Create new project Visual Studio - Lựa chọn Win32 Console Application, nhập tên project nhấn nút OK - Trong cửa sổ wizard sau đó, nhấn vào mục Application Settings chọn mục Empty Project, sau nhấn nút Finish - Lựa chọn Add New Item từ Project menu, sau chọn loại tập tin cpp, nhập tên tập tin nhấn OK - Nội dung tập tin mã nguồn vừa thêm phần V - Nhấn chuột phải vào Project chọn Properties - Ở cửa sổ vừa ra, cùng, đổi Configuration thành All Configuraitons - Ở phía bên cột bên trái, chọn Linker Input - Khi phía bên phải danh mục, có mục Addititonal Dependencies, thêm ";glut32.lib" vào sau mục này, có sử dụng glew, thêm ";glew32.lib" vào sau - Nhấn nút OK chọn Build Solution từ Build menu - Thực thi chương trình cách nhấn tổ hợp phím Ctrl+F5 - Nếu cài đặt xác tất bước, chương trình thực thi có kết sau CẤU TRÚC DỮ LIỆU VÀ HÀM TRONG CHƯƠNG TRÌNH 2.1Cấu trúc liệu Bước 1: chạy chương trình Bước 2: Nhập vào số cạnh đồ thị Bước 3: Nhập vào điểm bắt đầu để duyệt đồ thị Bước 4: kết hiển thị cách mà thuật toán bfs duyệt đồ thị bạn 2.2Các hàm chương trình 2.2.1 Hàm vẽ hình tròn void DrawCircle(float cx, float cy, float r) { glBegin(GL_LINE_LOOP); for (int ii = 0; ii > s; for (int i=1; i> v; a[u][v]=1; a[v][u]=1; } for (int i=1; i