实验一OpenGL基本图形绘制一、实验目的和要求:1.了解VC++环境下,OpenGL图形绘制的程序结构;2.通过编程实现简单二维图形的绘制;3.掌握理解简单的OpenGL程序结构;掌握OpenGL提供的基本图形函数,尤其是生成点、线、面的函数4.掌握图形显示原理。二、实验内容:1、OpenGL在VC++下的安装和配置2、读懂给定的示例程序,使用VisualC++6.0和OpenGL编写几个简单图形的绘制程序。3、建议有能力的学生进一步学习OpenGL的复杂功能创建效果更好的三维图形;三、实验步骤:1、初步了解OpenGL的功能以及语法特点;2、下载glut包,复制glut32.dll到winnt/system32文件夹下,复制glut32.lib到vc98/lib文件夹下,复制glut.h到vc98/include/gl文件夹下;3、创建VC工程:选择菜单File中的New选项,弹出一个分页的对话框,选中页Projects中的Win32ConsoleApplication项,然后填入你自己的Projectname,如Test,回车即可。VC为你创建一个工作区(WorkSpace),你的项目Test就放在这个工作区里;4、为项目添加文件:为了使用OpenGL,我们需要在项目中加入三个相关的Lib文件:glu32.lib、glut32.lib、opengl32.lib,这三个文件位于VC安装目录下的lib目录(如c:\programfiles\devstudio\vc\lib)中。选中菜单Project-AddToProject-Files项(或用鼠标右键),把这三个文件加入项目,在FileView中会有显示。这三个文件请务必加入,否则编译时会出错。或者将这三个文件名添加到Project-Setting-Link-Object/libraryModules即可。点击工具条中NewTextFile按钮,新建一个文本文件,存盘为Test.c作为你的源程序文件,再把它加入到项目中,然后就可以开始编程了;5、请将下面的程序写入源文件Test.c;#includegl/glut.h#includemath.hconstintn=60;constGLfloatR=0.2f;constGLfloatPi=3.1415926536f;voidmyDisplay(void){inti;glClear(GL_COLOR_BUFFER_BIT);//glShadeModel(GL_FLAT);//glShadeModel(GL_SMOOTH);//点glPointSize(2.0);glBegin(GL_POINTS);glVertex2f(0.0f,0.0f);glEnd();//由闭合折线组成的圆glBegin(GL_LINE_LOOP);glColor3f(1.0,1.0,0.0);for(i=0;in;++i)glVertex2f(R*cos(2*Pi/n*i),R*sin(2*Pi/n*i));glEnd();//由不闭合折线组成的两个三角形构成的六星阵图glBegin(GL_LINE_STRIP);glColor3f(1.0,0.0,0.0);glVertex2f(0.0,0.2);glVertex2f(0.1732,-0.1);glVertex2f(-0.1732,-0.1);glVertex2f(0.0,0.2);glEnd();glBegin(GL_LINE_STRIP);glVertex2f(0.0,-0.2);glVertex2f(0.1732,0.1);glVertex2f(-0.1732,0.1);glVertex2f(0.0,-0.2);glEnd();//连续三角形组成的扇形glBegin(GL_TRIANGLE_FAN);glVertex2f(0.5,0.5);glVertex2f(0.5,1.0);glColor3f(0.8,0.2,0.5);glVertex2f(0.8,0.9);glColor3f(0.2,0.5,0.8);glVertex2f(0.9,0.8);glColor3f(0.8,0.5,0.2);glVertex2f(1.0,0.5);glEnd();//虚线glLineWidth(3.0);glEnable(GL_LINE_STIPPLE);glLineStipple(2,0x0F0F);glBegin(GL_LINES);glColor3f(0.0,0.0,1.0);glVertex2f(-0.5f,1.0f);glColor3f(1.0,1.0,1.0);glVertex2f(-0.5f,-1.0f);glEnd();//线glLineWidth(0.5);glDisable(GL_LINE_STIPPLE);glBegin(GL_LINES);glColor3f(1.0,0.0,0.0);glVertex2f(0.5f,1.0f);glColor3f(1.0,1.0,1.0);glVertex2f(1.0f,0.5f);glEnd();glFlush();}intmain(intargc,char*argv[]){glutInit(&argc,argv);glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);glutInitWindowPosition(0,0);glutInitWindowSize(600,600);glutCreateWindow(第一个OpenGL程序);glutDisplayFunc(&myDisplay);glutMainLoop();return0;}/*GL_POINTS单个顶点集GL_LINES多组双顶点线段GL_POLYGON单个简单填充凸多边形GL_TRAINGLES多组独立填充三角形GL_QUADS多组独立填充四边形GL_LINE_STRIP不闭合折线GL_LINE_LOOP闭合折线GL_TRAINGLE_STRIP线型连续填充三角形串GL_TRAINGLE_FAN扇形连续填充三角形串GL_QUAD_STRIP连续填充四边形串*/6、修改绘图函数myDisplay中的内容,绘制如下图形;(1)绘制自己的姓名。(2)绘制一条数学曲线。曲线的方程自行定义。如y=sinx(3)用OpenGL程序绘制不同宽度、不同线型的直线。(4)实现黑白相间的棋盘图案填充多边形(5)绘制右图。并将多边形按照不同的形式显示,当是填充的显示方式时候,正反面用不同的属性。给每个顶点赋予一个颜色,观察图形的效果。三、实验结果:1.相关算法及原理描述2.程序调试和运行结果分析四、心得体会五、程序源代码(0.4,0.3)(-0.4,0.3)(0,-0.5)(0.4,-0.3)(-0.4,-0.3)(0,0.5)