1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập lớn báo cáo vẽ ôtô chạy trên mặt phẳng ngang môi trường visual c++ OPENGL

14 1,2K 17

Đ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 14
Dung lượng 526,44 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TRƯỜNG ĐHCN VINHKHOA : CÔNG NGHỆ BÀI TẬP:VẼ OTO CHẠY TRÊN MẶT PHẲNG NGANG BỘ MÔN: ĐỒ HỌA MÁY TÍNH OPENGL 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 :K

Trang 1

TRƯỜNG ĐHCN VINH

KHOA : CÔNG NGHỆ

BÀI TẬP:VẼ OTO CHẠY TRÊN MẶT PHẲNG NGANG

BỘ MÔN: ĐỒ HỌA MÁY TÍNH (OPENGL)

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

Trang 2

NỘI DUNG

• GIỚI THIỆU ĐỀ TÀI

• NÊU Ý TƯỞNG, GIẢI QUYẾT BÀI TOÁN

• CHẠY CHƯƠNG TRÌNH

Trang 3

I.GIỚI THIỆU ĐỀ TÀI

• Thiết kế một oto đơn giản chạy trên mặt ngang của màn hình

• Oto chạy từ viền trái đến viền phải màn hình thì quay lại từ trái tạo cảm giác oto đang chạy liền mạch trên màn hinh

Trang 4

Nền tảng và môi trường phát triển

Trang 5

II.NÊU Ý TƯỞNG, GIẢI QUYẾT BÀI TOÁN

1. Nêu ý tưởng

Thiết kế khối tứ giác và 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 và 2 hình tròn

•.Sử dụng hàm quay glRotate để quay 2 (bánh) hình tròn

•.Sử dụng hàm điều kiện if lúc nào oto chay đến giới hạn hiển thị thì cho x trở lại vị trí ban đầu

Trang 6

2 giải quyết bài toán

Tham chiếu thư viện

 #include<glut.h>

 #include<gl/GLU.h>

 #include<gl/GL.h>

 Khai báo

 #define ESCAPE 27

 int window;

 float rtri = 0.0;

 float rquad = 0.0;

Trang 7

// định dạng màn 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);

}

Trang 8

//banh xe

void drawBall(void) {

glColor3f(1.0, 1.0, 1.0);

glTranslatef(X, Y, Z);//tinh tien

glRotatef (X, X, Y, Z);//quay

glutSolidSphere(0.3, 20, 20);

glTranslatef(X + 2, Y, Z);

glutSolidSphere(0.3, 20, 20); //hinh cau dac

}

float X = -0.5f;

float Y = 0.0f;

float Z = 0.0f;

Trang 9

glBegin(GL_QUADS); //glBegin(GL_LINE_STRIP)

glColor3f(1.0f, 1.0f, 0.0f);

glVertex3f(-1.0f, 1.0f, 0.0f);

glVertex3f(1.0f, 1.0f, 0.0f);

glVertex3f(2.0f, 0.0f, 0.0f);

glVertex3f(-1.0f, 0.0f, 0.0f);

void DISPLAY()

{

glClear(GL_COLOR_BUFFER_BIT |

GL_DEPTH_BUFFER_BIT);

glLoadIdentity();

glTranslatef(rtri, 0.0f, -6.0f);

Trang 10

glEnd();

drawBall();

rtri += 0.001f;

if (rtri>2)

rtri = -2.0f;

rquad -= 15.0f;

glutSwapBuffers();

}

void keyPressed(unsignedcharkey, intx, inty)

{

if (key == ESCAPE)

{

glutDestroyWindow(window);

exit(0);

}

}

Trang 11

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);

}

Trang 12

glutReshapeFunc(&ReSizeGLScene);

glutKeyboardFunc(&keyPressed);

glutMainLoop();

return 1;

Trang 13

Phần 3 chạy chương trình

Ngày đăng: 27/11/2017, 06:59

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w