资源描述:
《-计算机图形学实验报告材料》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用文档计算机图形学实验报告姓名:_____________学号:_____________班级:_____________时间:_____2016年12月_________大全实用文档大全实用文档实验一OpenGL编程与图形绘制1.实验目的了解OpenGL编程,并熟悉OpenGL的主要功能、绘制流程和基本语法。学会配置OpenGL环境,并在该环境中编程绘图。2.实验内容OpenGL的主要功能:模型绘制、模型观察、颜色模式、光照应用、图像效果增强、位图和图像处理、纹理映射、实时动画和交互技术。OpenGL的绘制流程分为两个方面:一个完整的窗口系统的Ope
2、nGL图形处理系统的结构为:最底层为图形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenGL,最上面的层为应用软件;OpenGL命令将被放在一个命令缓冲区中,这样命令缓冲区中包含了大量的命令、顶点数据和纹理数据。当缓冲区被清空时,缓冲区中的命令和数据都将传递给流水线的下一个阶段。OpenGL的基本语法中相关库有:OpenGL核心库:gl、OpenGL实用程序库:glu、OpenG编程辅助库:aux、OpenGL实用程序工具包(OpenGLutilitytoolkit,GLUT):glut、Windows专用库:wgl。OpenGL的基本语法中命
3、名规则为:OpenGL函数都遵循一个命名约定,即采用以下格式:<库前缀><根命令><可选的参数个数><可选的参数类型>。了解了上述基础知识后,配置好OpenGL环境,然后在该环境中编程练习图形的绘制,本次实验主要是对点的绘制、直线的绘制和多边形面的绘制。大全实用文档1.实验代码及结果3.1点的绘制:#includevoidInitial(void){glClearColor(1.0f,1.0f,1.0f,1.0f);//设置窗口背景颜色为白色glMatrixMode(GL_PROJECTION);//指定设置投影参数gluOrtho
4、2D(0.0,200.0,0.0,150.0);//设置投影参数}voidDisplay(void){glClear(GL_COLOR_BUFFER_BIT);//用当前背景颜色填充窗口glColor3f(1.0f,0.0f,0.0f);//设置当前的绘图颜色为红//glRectf(50.0f,100.0f,150.0f,50.0f);//绘制一个矩形glPointSize(10);//三个点glBegin(GL_POINTS);glColor3f(1.0f,0.0f,0.0f);glVertex2i(2,148);大全实用文档glVertex2i(10
5、0,75);glVertex2i(198,2);glEnd();glFlush();//清空OpenGL命令缓冲区,执行OpenGL程序}intmain(intargc,char*argv[]){glutInit(&argc,argv);glutInitDisplayMode(GLUT_SINGLE
6、GLUT_RGB);//初始化窗口的显示模式glutInitWindowSize(400,300);//设置窗口的尺寸glutInitWindowPosition(100,120);//设置窗口位置glutCreateWindow("矩形");//创建一个名
7、为矩形的窗口glutDisplayFunc(Display);//设置当前窗口的显示回调函数Initial();//完成窗口初始化glutMainLoop();//完成窗口GLUT事件处理循环return0;}大全实用文档运行结果:3.2直线的绘制:#includevoidInitial(void){glClearColor(1.0f,1.0f,1.0f,1.0f);//设置窗口背景颜色为白色glMatrixMode(GL_PROJECTION);//指定设置投影参数gluOrtho2D(0.0,200.0,0.0,150.0);/
8、/设置投影参数}大全实用文档voidDisplay(void){glClear(GL_COLOR_BUFFER_BIT);//用当前背景颜色填充窗口glColor3f(1.0f,0.0f,0.0f);//设置当前的绘图颜色为红色//glRectf(50.0f,100.0f,150.0f,50.0f);//绘制一个矩形glBegin(GL_LINE_LOOP);//五角星glVertex2i(10,10);glVertex2i(30,35);glVertex2i(50,10);glVertex2i(5,25);glVertex2i(55,25);glEnd
9、();glFlush();//清空OpenGL命令缓冲区,执行OpenGL程序}