文档介绍:课程设计报告题目旋转四面体系(部)土木工程系专业地理信息系统班级地信081学生姓名刘自龙学号0807161148月30日至9月3日共1周指导教师(签字)系主任(签字)2010年8月27日目录摘要本文主要描述了计算机图形学中,运用C++和OpenGL来实现的绘制一个实体四面体。其中简单的用glutTimerFunc,glutSpecialFunc等函数实现了用光标键控制其旋转和用键盘上的F1、F2键实现自动旋转功能,并加设两个光源,一个为点光源,一个为聚光源。关键字:旋转球体OpenGLglutTimerFuncglutMouseFuncglutMotionFunc(1)设计内容运用C/C++、OpenGL实现。绘制四面体,并用光标键、鼠标控制其旋转或自动旋转。实现添加光源、纹理等真实感图形绘制的功能。界面友好,源程序代码清晰有层次。(2)将OPENGL中的glut中的文件进行配置(3)打开C++开发软件首先打开C++,选择新建工程当中的,然后选择存储路径进行备份,之后选择,最后进入编写程序界面。二:需求分析绘制四面体,明确绘制四面体的函数体是glutWireTetrahedron();(绘制线框四面体)glutSolidTetrahedron();(绘制实体四面体),键盘控制自动旋转的开始和停止,添加一个BOOR变量。其他功能实现需编程实现三:详细设计初始化:首先定义定态变量设置菜单项的默认参数是1,即线框四面体(下文介绍),另外设置默认绕X轴,Y轴的旋转参数然后进行光源初始化,设置背景颜色等代码如下:voidInitial(void){ glClearColor(,,,); glColor3f(,,); GLfloatmat_ambient[]={,,,}; GLfloatmat_diffuse[]={,,,}; GLfloatmat_specular[]={,,,}; GLfloatmat_shininess[]={}; GLfloatlight0_diffuse[]={,,,}; GLfloatlight0_position[]={,,,}; GLfloatlight1_ambient[]={,,,}; GLfloatlight1_diffuse[]={,,,}; GLfloatlight1_specular[]={,,,}; GLfloatlight1_position[]={-,-,,}; GLfloatspot_direction[]={,,-}; //定义材质属性 glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient);//指定材质的环境反射光反射系数 glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse);//指定材质的漫反射光反射系数 glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);//指定材质的镜面反射光反射系数 glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess);//指定材质的镜面反射指数值 //light0为漫反射的蓝色点光源 glLightfv(GL_LIGHT0,GL_DIFFUSE,light0_diffuse);//指定漫反射光成分 glLightfv(GL_LIGHT0,GL_POSITION,light0_position);//指定光源的位置 //light1为红色聚光光源 glLightfv(GL_LIGHT1,GL_AMBIENT,light1_ambient);//指定环境光成分 glLightfv(GL_LIGHT1,GL_DIFFUSE,light1_diffuse);//指定漫反射光成分 glLightfv(GL_LIGHT1,GL_SPECULAR,light1_specular);//指定镜面光成分 glLightfv(GL_LIGHT1,GL_POSITION,light1_position);//指定光源位置 glLightf(GL_LIGHT1,GL_SPOT_CUTOFF,);//指定聚光截止角 glLightfv(GL_LIGHT1,GL_SPOT_DIRECTION,spot_direction);//指定聚光灯的方向