资源描述:
《基于opengl 的3d图形绘制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《多媒体技术实验》实验报告册班级:计算机1072姓名:高磊学号:1071301211实验二基于OpenGL的3D图形绘制一、实验目的与要求1.学习OpenGL图形格式、数学原理;2.掌握OpenGL基本图元的绘制,熟悉曲线、曲面、二次几何体的绘制技术;3.掌握OpenGL光照、材质、纹理的基本原理;4.掌握基于Win32、VisualC++环境绘制3D图形绘制原理、过程与步骤。二、实验仪器与设备1.微型电子计算机80台2.Windows2000以上版本操作系统80套3.VisualC++6.0开发系统80套4.OpenG
2、L2.0以上函数库80套三、实验内容与步骤本实验主要做使用图形绘制系统,实现线条,矩形,圆,文本等基本图形的绘制,保存与打开功能。实验步骤如下。1.设计流程图开始选择演示模式选择演示类型设置光照和材质鼠标操纵3D图形翻转、移动是否自动旋转?设置旋转速度是否结束停止转动自动旋转演示图1设计流程图2.关键代码解析16《多媒体技术实验》实验报告册班级:计算机1072姓名:高磊学号:10713012111.1基于Win32Conslolevoidbackground(void){glClearColor(0.0,0.0,0.0,
3、0.0);//设置背景颜色为黑色}voidmyDisplay(void){glClear(GL_COLOR_BUFFER_BIT);//buffer设置为颜色可写glBegin(GL_TRIANGLES);//开始画三角形glShadeModel(GL_SMOOTH);//设置为光滑明暗模式glColor3f(1.0,0.0,0.0);//设置第一个顶点为红色glVertex2f(-1.0,-1.0);//设置第一个顶点的坐标glColor3f(0.0,1.0,0.0);//设置第二个顶点为绿色glVertex2f(0.
4、0,-1.0);//设置第二个顶点的坐标glColor3f(0.0,0.0,1.0);//设置第三个顶点为蓝色glVertex2f(-0.5,1.0);//设置第三个顶点的坐标glEnd();//三角形结束glPointSize(5.0f);glBegin(GL_POINTS);glVertex2f(1.0f,-0.5f);glEnd();glLineWidth(3.0f);glBegin(GL_LINES);glColor3f(1.0,0.0,0.0);//设置第一个顶点为红色glVertex2f(0.3f,-1.0f
5、);glColor3f(0.0,1.0,0.0);//设置第二个顶点为绿色glVertex2f(1.3f,-1.0f);glEnd();glBegin(GL_POLYGON);//画五边形glColor3f(1.0,0.0,0.0);glVertex2f(0.0f,0.0f);glColor3f(0.0,1.0,0.0);glVertex2f(1.0f,0.0f);glColor3f(0.0,0.0,1.0);glVertex2f(1.5f,1.0f);glColor3f(1.0,1.0,0.0);glVertex2f(
6、0.5f,1.5f);glColor3f(0.0,0.0,1.0);glVertex2f(-0.5f,1.0f);glEnd();//五边形结束glFlush();//强制OpenGL函数运行}voidmyReshape(GLsizeiw,GLsizeih)16《多媒体技术实验》实验报告册班级:计算机1072姓名:高磊学号:1071301211{glViewport(0,0,w,h);//设置视口glMatrixMode(GL_PROJECTION);//指明当前矩阵为GL_PROJECTIONglLoadIdentit
7、y();//将当前矩阵置换为单位阵if(w<=h)gluOrtho2D(-1.0,1.5,-1.5,1.5*(GLfloat)h/(GLfloat)w);//定义二维正视投影矩阵elsegluOrtho2D(-1.0,1.5*(GLfloat)w/(GLfloat)h,-1.5,1.5);glMatrixMode(GL_MODELVIEW);//指明当前矩阵为GL_MODELVIEW}intmain(intargc,char**argv){/*初始化*/glutInit(&argc,argv);glutInitDispl
8、ayMode(GLUT_SINGLE
9、GLUT_RGB);glutInitWindowSize(400,400);glutInitWindowPosition(200,200);/*创建窗口*/glutCreateWindow("OpenGL_Win32Console-1071301211高磊");/*绘制与显示*/