Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
526,44 KB
Nội dung
TRƯỜNG ĐHCN VINH KHOA : CÔNG NGHỆ BỘ MÔN: ĐỒ HỌA MÁY TÍNH (OPENGL) BÀI TẬP:VẼ OTOCHẠYTRÊNMẶTPHẲNGNGANG GVHD: NGUYỄN THỊ HIỀN NHÓM:BÙI ĐỨC HIẾU NGUYỄN ĐÌNH CHUẨN NGUYỄN KHẮC BÌNH LỚP :K2DCNTT NỘI DUNG • • • GIỚI THIỆU ĐỀ TÀI NÊU Ý TƯỞNG, GIẢI QUYẾT BÀI TỐN CHẠY CHƯƠNG TRÌNH I.GIỚI THIỆU ĐỀ TÀI • • Thiết kế oto đơn giản chạymặtngang hình Otochạy từ viền trái đến viền phải hình quay lại từ trái tạo cảm giác otochạy liền mạch hinh Nền tảng môitrường phát triển II.NÊU Ý TƯỞNG, GIẢI QUYẾT BÀI TOÁN Nêu ý tưởng Thiết kế khối tứ giác hai hình tròn dặcđể tạo oto có cấu tạo đơn giảnđơn giản • • • Sử dụng hàm tịnh tiến glTranslate để di chuyển tứ giác hình tròn Sử dụng hàm quay glRotate để quay (bánh) hình tròn Sử dụng hàm điều kiện if lúc otochay đến giới hạn hiển thị cho x trở lại vị trí ban đầu giải toán Tham chiếu thư viện #include #include #include Khai báo #define ESCAPE 27 int window; float rtri = 0.0; float rquad = 0.0; // định dạng hình void ReSizeGLScene(int Width, int Height) { if (Height == 0) Height = 1; glViewport(0, 0, Width, Height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0f, (GLfloat)Width / (GLfloat)Height, 0.1f, 100.0f); glMatrixMode(GL_MODELVIEW); } //banh xe void drawBall(void) { float X = -0.5f; glColor3f(1.0, 1.0, 1.0); glTranslatef(X, Y, Z);//tinh tien float Y = 0.0f; float Z = 0.0f; glRotatef (X, X, Y, Z);//quay glutSolidSphere(0.3, 20, 20); glTranslatef(X + 2, Y, Z); glutSolidSphere(0.3, 20, 20); //hinh cau dac } void DISPLAY() { glClear(GL_COLOR_BUFFER_BIT | glBegin(GL_QUADS); //glBegin(GL_LINE_STRIP) glColor3f(1.0f, 1.0f, 0.0f); glVertex3f(-1.0f, 1.0f, 0.0f); GL_DEPTH_BUFFER_BIT); glVertex3f(1.0f, 1.0f, 0.0f); glLoadIdentity(); glVertex3f(2.0f, 0.0f, 0.0f); glTranslatef(rtri, 0.0f, -6.0f); glVertex3f(-1.0f, 0.0f, 0.0f); void keyPressed(unsigned char key, int x, int y) glEnd(); { drawBall(); rtri += 0.001f; if (key == ESCAPE) if (rtri>2) { rtri = -2.0f; glutDestroyWindow(window); rquad -= 15.0f; glutSwapBuffers(); exit(0); } } } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH); glutInitWindowSize(1000, 640); glutInitWindowPosition(0, 0); glutCreateWindow("TEST "); glutDisplayFunc(DISPLAY); } glutIdleFunc(DISPLAY); glutReshapeFunc(&ReSizeGLScene); glutKeyboardFunc(&keyPressed); glutMainLoop(); return 1; Phần chạy chương trình ... CHƯƠNG TRÌNH I.GIỚI THIỆU ĐỀ TÀI • • Thiết kế oto đơn giản chạy mặt ngang hình Oto chạy từ viền trái đến viền phải hình quay lại từ trái tạo cảm giác oto chạy liền mạch hinh Nền tảng môi trường... tạo oto có cấu tạo đơn giảnđơn giản • • • Sử dụng hàm tịnh tiến glTranslate để di chuyển tứ giác hình tròn Sử dụng hàm quay glRotate để quay (bánh) hình tròn Sử dụng hàm điều kiện if lúc oto