2022年opengl立方体简单三维交互式几何变换实验报告材料+代码

上传人:151****513 文档编号:245048454 上传时间:2022-01-24 格式:DOCX 页数:12 大小:9.33KB
返回 下载 相关 举报
2022年opengl立方体简单三维交互式几何变换实验报告材料+代码_第1页
第1页 / 共12页
2022年opengl立方体简单三维交互式几何变换实验报告材料+代码_第2页
第2页 / 共12页
2022年opengl立方体简单三维交互式几何变换实验报告材料+代码_第3页
第3页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《2022年opengl立方体简单三维交互式几何变换实验报告材料+代码》由会员分享,可在线阅读,更多相关《2022年opengl立方体简单三维交互式几何变换实验报告材料+代码(12页珍藏版)》请在金锄头文库上搜索。

1、精选word文档 下载可编辑立方体的简单三维交互式几何变换这个学期对 opengl 的学习,使我对计算机图形学的一些算法过程 有了更多的了解。因为对三维图形的显示比较感兴趣, 就做了立方体 的简单三维交互式几何变换。功能:键盘的方向键实现立方体的上下左右平移; A键,S键分别实 现向前,向后旋转;J键,K键分别实现放大,缩小;C键退出。程序模块 :1. 该模块为绘制一个立方体。void DrawBox()glBegin(GL_QUADS); 前面glColor3f(1,0,0);glVertex3f(-1.0f, -1.0f, 1.0f); 四边形的左下glVertex3f( 1.0f, -1

2、.0f, 1.0f); 四边形的右下glVertex3f( 1.0f, 1.0f, 1.0f); 四边形的右上glVertex3f(-1.0f, 1.0f, 1.0f); 四边形的左上 后面glColor3f(0,1,0);glVertex3f(-1.0f, -1.0f, -1.0f); 四边形的右下glVertex3f(-1.0f, 1.0f, -1.0f); 四边形的右上glVertex3f( 1.0f,1.0f, -1.0f); 四边形的左上glVertex3f( 1.0f,-1.0f, -1.0f); 四边形的左下顶面glColor3f(0,0,1);glVertex3f(-1.0f,

3、1.0f, -1.0f); 四边形的左上glVertex3f(-1.0f,1.0f, 1.0f); 四边形的左下glVertex3f( 1.0f,1.0f, 1.0f); 四边形的右下glVertex3f( 1.0f,1.0f, -1.0f); 四边形的右上 底面glColor3f(1,1,0);glVertex3f(-1.0f, -1.0f, -1.0f); 四边形的右上 glVertex3f( 1.0f, -1.0f, -1.0f); 四边形的左上 glVertex3f( 1.0f, -1.0f, 1.0f); 四边形的左下 glVertex3f(-1.0f, -1.0f, 1.0f);

4、四边形的右下 右面glColor3f(0,1,1);glVertex3f( 1.0f, -1.0f, -1.0f); 四边形的右下glVertex3f( 1.0f, 1.0f, -1.0f); 四边形的右上 glVertex3f( 1.0f, 1.0f, 1.0f); 四边形的左上 glVertex3f( 1.0f, -1.0f, 1.0f); 四边形的左下 左面glColor3f(1,0,1);glVertex3f(-1.0f, -1.0f, -1.0f); 四边形的左下glVertex3f(-1.0f, -1.0f,1.0f); 四边形的右下glVertex3f(-1.0f,1.0f,1.

5、0f); 四边形的右上glVertex3f(-1.0f,1.0f, -1.0f); 四边形的左上glEnd();2该模块设置屏幕颜色和深度缓存,设置立方体的平移,缩放,旋 转变换。void display()glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); 清空颜色和深度缓存glMatrixMode(GL_MODELVIEW);glLoadIdentity(); gluLookAt(2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); glTranslatef(0.0f+tx,0.0f+ty,-4.0f);

6、 平移变换 glScalef(1+sf,1+sf,1+sf); 缩放变换glRotatef(ratX, 1.0f, 0.0f, 0.0f); 绕 X 轴的旋转变换glRotatef(ratY, 0.0f, 1.0f, 0.0f); 绕 Y 轴的旋转变换glRotatef(ratZ, O.Of, O.Of, 1.0f);绕 Z 轴的旋转变换DrawBox();glFlush();glutSwapBuffers();该模块为重绘回调函数,在窗口首次创建或用户改变窗口尺寸时被 调用。void reshape(int w, int h)glViewport(0, 0, w, h); 指定视口的位置和大

7、小 glMatrixMode(GL_PROJECTION);glLoadIdentity(); glFrustum(-1.0, 1.0, -1.0, 1.0, 3.1, 10.0); gluPerspective(45,1,0.1,10.0);glOrtho(-2.0, 2.0, -2.0, 2.0, 2.0, 10.0);该模块为设置深度缓存和启动深度测试模式。void init()glClearColor (1.0, 1.0, 1.0, 1.0);glEnable(GL_DEPTH_TEST); 启动深度测试模式该模块为设置键盘的交互式操作。void myKeyboard(unsigned

8、 char key, int x, int y)if(key=a | key=A)ratX +=2;ratY +=2;ratZ +=2;if(key=s | key=S)ratX -=2;ratY -=2;ratZ -=2;if(key=j | key=J)sf+=0.1;if(key=k | key=K)sf-=0.1;if(key=c | key=C)exit(0);glutPostRedisplay(); 重新调用绘制函数该模块为设置键盘方向键的交互式操作。void myspecialKeyboard(int key,int x,int y) if(key=GLUT_KEY_UP )ty

9、+=0.1;if(key=GLUT_KEY_DOWN) ty-=0.1;if(key=GLUT_KEY_LEFT)tx-=0.1;if(key=GLUT_KEY_RIGHT)tx+=0.1;glutPostRedisplay();主函数模块,实现设置显示模式(窗口大小 ,位置) ,调用函数操作。int main(int argc, char* argv)glutInit(&argc,argv); 初始 GLUT.glutInitDisplayMode (GLUT_DEPTH |GLUT_DOUBLE | GLUT_RGB); 设定显示模式glutInitWindowSize(400,400);

10、 设定窗口大小glutInitWindowPosition(50,100); 设定窗口位置glutCreateWindow(”立方体的简单三维交互式几何变换”); 用前面指定参数创建glutReshapeFunc(reshape); 指 定重绘回调函数glutDisplayFunc(display); 进行一些初始化工作glutKeyboardFunc( myKeyboard); 指定键盘回调函数glutSpecialFunc(myspecialKeyboard); 指定键盘回调函数ini t();glutMainLoop();进入无穷循环,等待事件处理功能截图:立方体的平移:上平移立方荐的待

11、单二雜处互式几何喪鞍下平移:左平移:右平移:放大:缩小:立再体的简車三维交互式几何交换旋转:源程序:#include #include #include float ratX=60;float ratY=60;float ratZ=60;float tx=0;float ty=0;float sf=0;void DrawBox()glBegin(GL_QUADS); 前面 四边形的左下 四边形的左下 四边形的右下 四边形的右上 四边形的左上glVertex3f(-1.0f, -1.0f, 1.0f);glVertex3f( 1.0f, -1.0f, 1.0f);glVertex3f( 1.0f

12、, 1.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f); 后面glColor3f(0,1,0);glVertex3f(-1.0f, -1.0f, -1.0f); 四边形的右下 四边形的左上 四边形的左上 四边形的左下 四边形的左上 四边形的左下 四边形的右下 四边形的右上1.0f, -1.0f);1.0f, 1.0f);1.0f, 1.0f);1.0f, -1.0f);glVertex3f(-1.0f, 1.0f, -1.0f); 四边形的右上glVertex3f( 1.0f, 1.0f, -1.0f);glVertex3f( 1.0f, -1.0f, -1.0f);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号