Xây dựng phần mềm hỗ trợ học sinh cấp 3 học khảo sát và vẽ đồ thị hàm số bằng opengl
BỘ CÔNG THƯƠNG 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 TẬP LỚN MÔN ĐỒ HỌA MÁY TÍNH ĐỀ TÀI: XÂY DỰNG PHẦN MỀM HỖ TRỢ HỌC SINH CẤP HỌC KHẢO SÁT VÀ VẼ ĐỒ THỊ HÀM SỐ BẰNG OPENGL Giảng viên hướng dẫn: ThS Vũ Minh Yến Nhóm thực hiện: NHÓM – HTTT- K5 Hà Nội ngày 6/8/2012 BÁO CÁO BÀI TẬP LỚN MÔN ĐỒ HỌA MÁY TÍNH ĐỀ TÀI: XÂY DỰNG PHẦN MỀM HỖ TRỢ HỌC SINH CẤP HỌC KHẢO SÁT VÀ VẼ ĐỒ THỊ HÀM SỐ BẰNG OPENGL Giảng viên hướng dẫn: ThS Vũ Minh Yến Nhóm thực hiện: NHÓM – HTTT- K5 NHÓM 7_H3TK5 Lơi mơ đầu Trong thơi đại phát triển của ngành công nghệ thông tin ngày nay, việc ứng dụng công nghệ thông tin cuốc sống có vai trò vô cùng ý nghĩa góp phần tích cực xây dựng xã hội hiện đại, sánh vại với các nước hiện đại thế giới Page Ngành đồ họa máy tính lĩnh vực công nghẹ thông tin được phát triển cách mạnh mẽ, đó có việc ứng dụng công nghệ vẽ 3D xây dựng các đô thị hiện đại, hướng tới tương lai hiện đại phát triển Không những thế, đồ họa máy tính còn được ứng dụng game 3D, loại hình giải trí thịnh hành thập niên chúng ta Và ứng dụng giơ cũng được áp dụng việc học tập của học sinh, sinh viên, công cụ mạnh mẽ hỗ trợ cho việc dạy học của thầy cô học sinh, sinh viên, nâng cao kết quả dạy học của thầy trò Nhận đề tà tập lớn đồ họa máy tính “ Xây dựng phần mềm hỗ trợ học sinh cấp học khảo sát và vẽ đồ thị hàm số bằng opengl” nhóm 19_HTTT_k5 chúng em với thành viên nhóm đã tích cực tìm hiểu về opengl OpenGl phận mới của đồ họa máy tính tính của nó vô cùng mạnh mẽ công việc phác họa vẽ 3D Nó được đánh giá cao việc lập trình 3D Qua thơi gian nghiên cứu tìm hiểu của các thành viên nhóm về đồ họa 3D opengl, chúng em đã có thể hiểu bản về opengl có thể lập trình bản opengl đề tài của nhóm Tuy có tìm hiểu học hỏi opengl chương trình mới lạ so với kiến thức đã học lớp, có nhiều phần chúng em cũng chưa rõ nên lập trình còn sơ sài, thiếu sót, mong cô các bạn đóng góp ý kiến để đề tài trơ nên hoàn chỉnh cũng hội cho các bạn học hỏi, đúc kết thêm kho tàng kiến thức của mình Chúng em xin chân thành cảm ơn!! Nhóm 7_HTTT_K5 NỘI DUNG VÀ YÊU CẦU CỦA ĐỀ TÀI Nội dung Xây dựng phần mềm hỗ trợ học sinh cấp học khảo sát vẽ đồ thị hàm số Yêu cầu : Page • Mỗi thành viên phải hiểu phân tích được toàn đề tài đã làm của nhóm • Ngôn ngữ lập trình được áp dụng : DEV C++ Chức của phần mềm Giúp khảo sát hàm bản chương trình cấp + Hàm đa thức bậc 2: y=ax2 + bx2 + c (a#0) + Hàm đa thức bậc 3: y=ax3 +bx2 + cx + d (a#0) + Hàm đa thức bậc 4( trùng phương): y=ax4 + bx2 + c (a#0) Ngươi dùng chỉ việc kích chuột phải chọn loại hàm đa thức nào( có menu) phần mềm sẽ tự động khảo sát vẽ bảng biến thiên đồ thị hàm số Phần Giơi thiệu về OPENGL I Tìm hiểu Opengl 1.Lịch Sử Phát Triển : Nguyên thủy, GL Silicon Graphics Incorporated (SGI) thiết kế để dùng cho các trạm làm việc (workstation) đồ họa IRIS của họ IRIS GL với các cấu hình phần cứng khác thì có vấn đề phát sinh OpenGL kết quả nổ lực của SGI nhằm cải thiện tính tương thích của IRIS GL Ngôn ngữ mới có khả của GL, đồng thơi “mơ “ nghĩa dễ dàng Page tương thích với các lọai cấu hình phần cứng, cũng các hệ điều hành khác Version1.0 của OPENGL được giới thiệu vào ngày 01/7/1992 Để bảo đảm tính “mơ “, mọi sự nâng cấp OpenGL phải thông qua Ủy Ban Xem Xét Kiến Trúc OpenGL(OpenGL Architecture Review Board AEB) gồm các thành viên sáng lập SGI, Digittal Equipment Corporation, IBM , Intel Microsoft.ARB hợp mỗi năm hai lần Open GL version1.1 được ARB thông qua vào tháng 12/1995 Opengl là gì? Được phát triển đầu tiên bơi Silicon Graphic, Inc., giao diện phần phần mềm hướng thủ tục theo chuẩn công nghiệp hộ trợ đồ họa chiều Cung cấp khoảng 120 tác vụ để vẽ các primitive nhiều mode khác Với OpenGL, bạn có thể tạo ảnh chiều cả tĩnh động với chất lượng cao Là giao diện phần mềm độc lập với phần cứng (hardware – independent software interface) hộ trợ cho lập trình đồ họa Để làm được điều này, OpenGL không thực hiện các tác vụ thuộc về hệ điều hành cũng không nhận dữ liệu nhập của dùng (ngươi dùng giao tiếp với OpenGL thông qua OpenGL API) Nó lớp trung gian giữa dùng phần cứng Nghĩa nó giao tiếp trực tiếp với driver của thiết bị đồ họa Các hàm bản OpenGL Trong Opengl các hàm được bắt đầu GL nằm trước tên hàm void glutInit(int *argc, char **argv); Khơi động GLUT , argc, argv đối số dòng lệnh của hàm main void glutInitWindowPosition(int x, int y); Page Khơi tạo vị trí bắt đầu cửa sổ, x left of the screen, y top of the screen, nói chung điểm bên trái, phía của cửa sổ, từ ta kéo xuống phía dưới, bên phải được cửa sổ Đơn vị của x, y pixel void glutInitWindowSize(int width, int height); Khơi tạo kích thước cửa sổ với chiều dài chiều rộng, cộng thêm điểm bắt đầu mới nói nữa, bạn đã tương tượng đc cái cửa sổ chưa void glutInitDisplayMode(unsigned int mode) Định nghĩa mode hiển thị, chỉ màu của mode số + kiểu của buffer + GLUT_RGBA or GLUT_RGB : cửa sổ màu RGBA, mode mặc định + GLUT_SINGLE : cửa sổ buffer đơn + GLUT_DOUBLE : cửa sổ buffer đôi + GLUT_DEPTH : cửa sổ buffer sâu int glutCreateWindow(char *title); Tạo cửa sổ có tiêu đề title void glutDisplayFunc(void (*func)(void)); Hàm báo cho GLUT biết phải trình diễn theo hàm , đối số của nó trỏ hàm trả về kiểu void void glutMainLoop(void) ; Cuối cùng ta phải lặp lại hàm main liên tục để “trình diễn hình ảnh” Giống ta làm phim hoạt hình đó, các frame nối tiếp ảnh Page Các lệnh glClearColor(), glClear(),glFush() những lệnh bản của Opengl glClearColor() có nhiệm vụ chọn màu để xoá window, bạn dễ dàng nhận nó có tham số, tham số đó RGBA( red green blue alpha).Không giống với hàm RGB() Win32 API , tham số có giá trị khoảng 0.0f đến 1.0f(kiểu float) Các giá trị R,G,B OpenGL thì >=0.0 (không có) [...]... vediem("-5",0.05,-1.0); vediem("NHOM 19_HTTT_VE DTHS",0 .3, -1.1); // *************DANH DAU TRUC OX********* vediem("1",0.15,-0.05); 23 Page 23 vediem("2",0 .3, -0.05); vediem( "3" ,0.45,-0.05); vediem("4",0.6,-0.05); vediem("5",0.75,-0.05); vediem("6",0.9,-0.05); vediem("7",1.05,-0.05); vediem("Ox",1.2,-0.06); vediem("-1",-0.15,-0.05); vediem("-2",-0 .3, -0.05); vediem(" -3" ,-0.45,-0.05); vediem("-4",-0.6,-0.05);... float b=0; float c=0; float d=0; float y=(a*x*x*x)+(b*x*x)+c*x+d; while(x ... MÔN ĐỒ HỌA MÁY TÍNH ĐỀ TÀI: XÂY DỰNG PHẦN MỀM HỖ TRỢ HỌC SINH CẤP HỌC KHẢO SÁT VÀ VẼ ĐỒ THỊ HÀM SỐ BẰNG OPENGL Giảng viên hướng dẫn: ThS Vũ Minh Yến Nhóm thực hiện: NHÓM – HTTT- K5 NHÓM 7_H3TK5... dụng : DEV C++ Chức của phần mềm Giúp khảo sát hàm bản chương trình cấp + Hàm đa thức bậc 2: y=ax2 + bx2 + c (a#0) + Hàm đa thức bậc 3: y=ax3 +bx2 + cx + d (a#0) + Hàm đa thức bậc 4(... khác Version1.0 của OPENGL được giới thiệu vào ngày 01/7/1992 Để bảo đảm tính “mơ “, mọi sự nâng cấp OpenGL phải thông qua Ủy Ban Xem Xét Kiến Trúc OpenGL( OpenGL Architecture Review