文档介绍:学生实验实****报告册学年学期:2016-2017学年o春秋学期课程名称:大学计算机基础学生学院:通信与信息工程学院专业班级:学生学号:学生:联系:邮电大学教务处印制实验实****名OpenGL基本使用指导教师红星考核成绩课程名称计算机图形学A课程编号040659实验实****地点信息科技大厦S306完成日期2016年10月17日学生学生学号学院专业广电与数字媒体类所在班级教师评语教师签名:年月日实验实****目的及要求目的:认识了解OpenGL的性质、功能要求::比如球体、:平移、缩放、旋转二、实验实****设备(环境)及要求(软硬件条件)采用MicrosoftVisualC2010生成环境并用C++编写程序三、实验实****容与步骤容:背景为黑色,在点光源下,能够实现平移、缩放、旋转的球。步骤:建立立体-->添加光照-->“主函数”,在主函数中将窗口生成好。“自定义函数1”中对窗口进行清除、填色等操作。“自定义函数1”中设置点光源,设置光照的各种参数。“自定义函数1”中设置平移、缩放、旋转及各参数。“自定义函数2”中设置平移和缩放的循环。,并且在主函数里面用“自定义函数1”为参数调用glutDisplayFunc()来注册一个绘图函数。其次用空闲回调函数glutIdleFunc()来使球体不停地循环有缩放、平移功能的函数。实现动画。四、实验实****过程或算法(源程序、代码)#include<GL/>GLfloatangle=;GLfloatmultiply=;voiddisplay(void){ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glClearColor(,,,);//设置窗口里面的背景颜色 glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(,,,); glLoadIdentity(); gluLookAt(,,,,,,,,); { //设置一个点光源 GLfloatlight_position[]={,,,};//(xyzw)w为1时代表点光源,0时代表方向光源 GLfloatlight_ambient[]={,,,};//(0001) GLfloatlight_diffuse[]={,,,};//(1111) GLfloatlight_specular[]={,,,};//(1111) glLightfv(GL_LIGHT0,GL_POSITION,light_position); glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);//光源环境光强值 glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);//光源漫反射强值 glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular);//光源镜面反射强值 glEnable(GL_LIGHT0);//打开该光源 glEnable(GL_LIGHTING);//打开光照 } { glRotatef(angle,,,); glTranslatef(,,);//平移 glScaled(multiply,multiply,multiply);//缩放 glutSolidSphere(,50,50); } glutSwapBuffers();}voidrotateAndzoom(void)//旋转和缩放{ angle+=; if(angle>=) angle=; display(); //设置旋转 multiply+=; if(multiply>=) //multiply-=; //if(multiply<=) multiply=; display(); //设置缩放} intmain(intargc,char*argv[]){ glutInit(&argc,argv); glutInitDisplayMode(GLUT_RGBA|GLUT_DOUBLE); glutInitWindowPosition(400,50); glut