1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo bài tiểu luận thuộc học phần đồ họa máy tính mô phỏng nút giao thông có tàu đi qua

17 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 3,83 MB

Nội dung

n TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA: CÔNG NGHỆ THÔNG TIN - BÁO CÁO BÀI TIỂU LUẬN THUỘC HỌC PHẦN: ĐỒ HỌA MÁY TÍNH MƠ PHỎNG NÚT GIAO THƠNG CĨ TÀU ĐI QUA GVHD: Nhóm - Lớp: ThS Vũ Minh Yến 23 Thành viên: Nguyễn Việt Thắng 2017607778 Văn Phú Thăng 2017607369 Trần Xuân Chiến 2017607380 Hà Nội - Năm 2020 MỤC LỤC MỞ ĐẦU CHƯƠNG MƠ TẢ BÀI TỐN .4 1.1 Giới thiệu đề tài 1.2 Mơ tả mơ hình kịch CHƯƠNG MỘT SỐ KỸ THUẬT PHÁT TRIỂN CHƯƠNG TRÌNH 2.1 Thiết kế cài đặt (Tàu chở hàng) 2.2.1 Mô hình phân cấp .5 2.2.2 Kỹ thuật cài đặt 2.2 Thiết kế cài đặt (Barie) 2.2.1 Mô hình phân cấp .6 2.2.2 Kỹ thuật cài đặt 2.3 Thiết kế cài đặt (Xe ô tô) 2.3.1 Mơ hình phân cấp .7 2.3.2 Kỹ thuật cài đặt 2.4 Thiết kế cài đặt (Nút giao thông) 2.5 Thiết kế cài đặt (Tàu di chuyển) .8 2.6 Thiết kế cài đặt (Xe oto di chuyển) 2.7 Thiết lập điều khiển phép chiếu, camera CHƯƠNG KẾT QUẢ CHƯƠNG TRÌNH .9 Phụ Lục .14 Tài liệu tham khảo 14 KẾT LUẬN .15 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT VLSI – very large scale integrated circuit DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình Mơ nút giao thông .9 Hình Mơ barie mở nên .10 Hình Mơ barie hạ xuống 11 Hình Mơ tàu di chuyển 12 Hình Mơ Ơ tơ di chuyển 13 MỞ ĐẦU Như thấy năm gần phát triển vượt bậc công nghệ đồ họa mang lại cho người 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 lĩnh vực khoa học máy tính nghiên cứu sở 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 ) Hiện đồ họa máy tính có nhiều ứng dụng Ước tính đến 80% thơng tin xử lý hình ảnh Một số ứng dụng tiêu biểu đồ họa máy tính là:     Tạo mơ hình, hoạt cảnh (game, giải trí, ) Hỗ trợ thiết kế đồ họa Mơ hình ảnh, chẩn đốn hình ảnh (trong y tế) Huấn luyện đào tạo ảo (qn sự, hàng khơng, ) Có nhiều cách tiếp cận việc học môn đồ họa, trải rộng từ việc nghiên cứu phần cứng tới việc học để sử dụng đồ họa máy tính lĩnh vực chuyên biệt thiết kế mạch tích hợp cao (VLSI – very large scale integrated circuit) Ở tiếp cận từ góc độ người lập trình ứng dụng, người sử dụng tất hỗ trợ phần cứng, công cụ phần mềm để xây dựng nên ứng dụng Tuy nhiên để thiết kế cài đặt chương trình ứng dụng đồ họa tốt, ngồi việc tìm hiểu khả cơng cụ lập trình, cần phải nắm vững khái niệm phần cứng; vấn đề, nguyên lí liên quan đến cài đặt phần mềm, thuật toán, ứng dụng, … Là sinh viên khoa Công nghệ thông tin trường Đại học Công Nghiệp Hà Nội 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 học hướng dẫn cô Vũ Minh Yến chúng em thực đề tài "Mô hoạt động nút giao thơng" Trong q 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 chun nghiệp,hồn chỉnh nhất, cịn 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 CHƯƠNG MƠ TẢ BÀI TỐN 1.1 Giới thiệu đề tài Tên đề tài: Mô hoạt động nút giao thơng Sử dụng máy tính thư viện OpenGL 1.2 Mơ tả mơ hình kịch u cầu chương trình - Mơ nút giao thông đường ray xe lửa thành phần: tàu lửa, ô tô, giao thông - Mô việc chuyển động đối tượng cụ thể : tàu chuyển động đường ray, chắn bảo vệ cho xe dừng, xe xe ô tô di chuyển - Có thay đổi góc nhìn tùy ý Mơ tả chức chương trình - Sau chạy chương trình nhấn phím “1” ,”2” để tiến tàu trước lùi sau - Sử dụng phím “U” để hạ chặn,phim “u” để nâng nên - Phím “3” “4” để di chuyển xe ô tô tiến lên trước lùi sau CHƯƠNG MỘT SỐ KỸ THUẬT PHÁT TRIỂN CHƯƠNG TRÌNH 2.1 Thiết kế cài đặt (Tàu chở hàng) 2.2.1 Mơ hình phân cấp Để vẽ nút giao thông chúng em trực tiếp sử dụng tốn học tính tọa độ tàu void initCube() { // Gán giá trị tọa độ vị trí cho đỉnh hình lập phương vertices[0] = point4(-0.5, -0.5, 0.5, 1.0); vertices[1] = point4(-0.5, 0.5, 0.5, 1.0); vertices[2] = point4(0.5, 0.5, 0.5, 1.0); vertices[3] = point4(0.5, -0.5, 0.5, 1.0); vertices[4] = point4(-0.5, -0.5, -0.5, 1.0); vertices[5] = point4(-0.5, 0.5, -0.5, 1.0); vertices[6] = point4(0.5, 0.5, -0.5, 1.0); vertices[7] = point4(0.5, -0.5, -0.5, 1.0); // Gán giá trị màu sắc cho đỉnh hình lập phương vertex_colors[0] = color4(0.0, 0.0, 0.0, 1.0); // black vertex_colors[1] = color4(1.0, 0.0, 0.0, 1.0); // red vertex_colors[2] = color4(1.0, 1.0, 0.0, 1.0); // yellow vertex_colors[3] = color4(0.0, 1.0, 0.0, 1.0); // green vertex_colors[4] = color4(0.0, 0.0, 1.0, 1.0); // blue vertex_colors[5] = color4(1.0, 0.0, 1.0, 1.0); // magenta vertex_colors[6] = color4(1.0, 1.0, 1.0, 1.0); // white vertex_colors[7] = color4(0.0, 1.0, 1.0, 1.0); // cyan } int Index = 0; void quad(int a, int b, int c, int d) /*Tạo mặt hình lập phương = tam giác, gán màu cho đỉnh tương ứng mảng colors*/ { colors[Index] = vertex_colors[a]; points[Index] = vertices[a]; Index++; colors[Index] = vertex_colors[b]; points[Index] = vertices[b]; Index++; colors[Index] = vertex_colors[c]; points[Index] = vertices[c]; Index++; colors[Index] = vertex_colors[a]; points[Index] = vertices[a]; Index++; colors[Index] = vertex_colors[c]; points[Index] = vertices[c]; Index++; colors[Index] = vertex_colors[d]; points[Index] = vertices[d]; Index++; } void makeColorCube(void) /* Sinh 12 tam giác: 36 đỉnh, 36 màu*/ { quad(1, 0, 3, 2); quad(2, 3, 7, 6); quad(3, 0, 4, 7); quad(6, 5, 1, 2); quad(4, 5, 6, 7); quad(5, 4, 0, 1); } void generateGeometry(void) { initCube(); makeColorCube(); } Recommandé pour toi 38 Suite du document ci-dessous 9-AGRI-CROP-TLE9 Q2 Mod4 Clean Maintainand Store Toolsand Equipment v2-3 Technology vocational Livelihood 37 Management marks -1 - Mmm Bsc.nursing 100% (2) Bài tiếng anh writing - no description Intermediate Business English 100% (3) 100% (1) Resumen Cap 59 Guyton Luis Enrique Silva Díaz Fisiología Humana y Prácticas 95% (19) 2.2.2 Kỹ thuật cài đặt void ngang(GLfloat w, GLfloat l, GLfloat h) { instance = Scale(w, h, l); glUniformMatrix4fv(model_loc, 1, GL_TRUE, model*instance_ban*instance); glDrawArrays(GL_TRIANGLES, 0, NumPoints); } void cot(GLfloat w, GLfloat h) { instance = Scale(w, h, w); glUniformMatrix4fv(model_loc, 1, GL_TRUE, model*instance_ban*instance); glDrawArrays(GL_TRIANGLES, 0, NumPoints); } 2.2 Thiết kế cài đặt (Barie) 2.2.1 Mơ hình phân cấp Trụ đứng Upper Arm Ma trận M=I T(0, h1, 0) Ry( ) M=M* T(0, h1, 0)*Ry( ) 2.2.2 Kỹ thuật cài đặt void barie() { model = RotateX(theta[0] = -30) * RotateY(theta[0] = 30); instance_ban = Identity(); /*Sửa identity() mat.h thành Identity()*/ instance_ban = Translate(-0.8f, -0.15f, 0.19f); cot(0.1f, 0.3f); } void barie2() { model = RotateX(theta[0] = -30) * RotateY(theta[0] = 30); instance_ban = Identity(); /*Sửa identity() mat.h thành Identity()*/ instance_ban = Translate(0.62f, -0.15f, 0.19f); cot(0.1f, 0.3f); } GLdouble BASE_HEIGHT = 1; void barie1() { model *= RotateZ(theta[1]); instance_ban = Identity(); instance_ban = Translate(-0.1f, -0.04f, 0.2f); ngang(1.5f, 0.02f, 0.05f); } GLfloat td = 1; 2.3 Thiết kế cài đặt (Xe ô tô) 2.3.1 Mô hình phân cấp 2.3.2 Kỹ thuật cài đặt void oto() { // model = RotateX(theta[0] = -30) * RotateY(theta[0] = 30); instance_ban = Identity(); /*Sửa identity() mat.h thành Identity()*/ model = model * Translate(-0.08f, 0.0001f, -0.12f*td1); instance_ban = Translate(-0.2f, -0.165f, -0.45f); ngang(0.2f, 0.2f, 0.2f); instance_ban = Translate(-0.2f, -0.145f, -0.7f); ngang(0.25f, 0.41f, 0.25f); } 2.4 Thiết kế cài đặt (Nút giao thông) switch (key) { case 'U': // số lệnh theta[1] += 1; if (theta[1] >= -15 && theta[1] < 0) { theta[1] = theta[1] + 1; } else theta[1] = 0; glutPostRedisplay(); break; case 'u': // số lệnh theta[1] -= 1; if (theta[1] < -15) theta[1] =-15; glutPostRedisplay(); break; 2.5 Thiết kế cài đặt (Tàu di chuyển) case '1': // số lệnh td=td+1; glutPostRedisplay(); break; case '2': // số lệnh td = td - 1; glutPostRedisplay(); break; 2.6 Thiết kế cài đặt (Xe oto di chuyển) case '3': // số lệnh td1 = td1 - 1; glutPostRedisplay(); break; case '4': // số lệnh td1 = td1 + 1; 2.7 Thiết lập điều khiển phép chiếu, camera void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); barie(); barie2(); tau(); hangrao(); tramkiemsoat(); duongsat(); oto(); vachkeduong(); barie1(); glutSwapBuffers(); } CHƯƠNG KẾT QUẢ CHƯƠNG TRÌNH Hình Mơ nút giao thơng Hình Mơ barie mở nên 10 Hình Mơ barie hạ xuống 11 Hình Mơ tàu di chuyển 12 Hình Mơ Ơ tơ di chuyển 13 Phụ Lục Tài liệu tham khảo Slide giảng tài liệu học tập ThS Vũ Minh Yến Interative computers graphics- Adward Angel and Dave Shreiner OpenGL Programming- Eighth Editison 14 KẾT LUẬN Qua việc thực nghiên cứu đề tài “Mơ bến cảng” Nhóm chúng em đãđược biết thêm nhiều mơn đồ họa máy tính Bên cạnh đó, việc làm nghiên cứu giúp chúng em đoàn kết hơn, rèn luyện cho chúng e kỹ làm việc nhóm Trong q trình thực đề tài có nhiều ý tưởng hay, độc đáo Nhưng kiến thức chúng em hạn hẹp thời gian không cho phép nên chúng em chưa thể thực ý tưởng Tuy nhiên chúng em cố gắng để xây dựng chương trình hồn chỉnh nhất, đẹp Trong trình xây dựng chương trình nhóm chúng em khó tránh khỏi sai sót Vì em mong thầy bạn góp ý với nhóm em để hịa thành sản phẩm cách hoàn chỉnh Chúng em xin cảm ơn Vũ Minh Yến tận tình giảng dạy chúng em mơn Đồ họa máy tính Giúp đỡ chúng em trình nghiên cứu đề tài.Chia sẻ tài liệu hay thư viện OpenGl kĩ nập trình Một lần chúng em xin chân thành cảm ơn ! 15

Ngày đăng: 12/06/2023, 09:24

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w