C程序设计大作业 openGL.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C程序设计大作业 openGL.pdf》由会员分享,可在线阅读,更多相关《C程序设计大作业 openGL.pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、程序设计挑战式课程设计极限挑战挑战,不是为着征服自然,而是为着突破自我,超越自我作业名称:作业名称:学学院:院:班班级:级:学学号:号:姓姓名:名:团队组成:团队组成:生命有极限,思想无极限,高度有极限,境界无极限可爱的玩偶电子信息学院西北工业大学西北工业大学20222022 年年 4 4 月月 2626 日日程序设计挑战式课程设计报告请填写以下十项内容,将表格按页对齐(插入空行),勿删除任何部分。请填写以下十项内容,将表格按页对齐(插入空行),勿删除任何部分。1 1、问题与背景(描述程序所要解决的问题或应用背景)、问题与背景(描述程序所要解决的问题或应用背景)用 C 语言中的 openGL
2、库设计卡通 3D 动态图,可以应用于游戏等领域。2 2、开发工具(列出所使用的开发工具和第、开发工具(列出所使用的开发工具和第 3 3 方开发库)方开发库)Code:block16.013 3、主要功能(详细说明程序的功能)、主要功能(详细说明程序的功能)通过 C 语言,设计一个卡通 3D 动态图。运行时,可以得到动态的卡通图形。4 4、设计内容(详细描述解决问题的原理和方法、算法、数据结构等)、设计内容(详细描述解决问题的原理和方法、算法、数据结构等)1 主要数据结构的设计程序中定义的主要数据类型如下:const float ar glViewport glMatrixMode glLoad
3、Identity glFrustum glMatrixMode glLoadIdentity-2-程序设计挑战式课程设计报告2、主要函数的实现1)绘制一个实心球,默认原点在屏幕中心与照相机重合 glPushMatrix();glTranslated(0,0,-5);glRotated(90,1,0,0);glRotated(a,0,0,1);glutSolidSphere(1,slices,stacks);2)绘制一个实心圆锥体,默认原点在屏幕中心与照相机重合 glColor3d(1,1,0);3)绘制一个线框圆环 glPushMatrix();glTranslated(0,0,-6);glR
4、otated(60,0,1,0);glRotated(a,0,1,0);glutWireTorus(0.5,1.8,slices,stacks);/glutWireTorus(GLdoubleinnerRadius,GLdouble outerRadius,GLint sides,GLint rings);glPopMatrix();glutSwapBuffers();4)定义一个默认的光源的属性值,使用数组来存放光源的颜色值const GLfloat light_ambient =0.0f,0.0f,0.0f,1.0f;-3-程序设计挑战式课程设计报告const GLfloat light_
5、diffuse =1.0f,1.0f,1.0f,1.0f;const GLfloat light_specular=1.0f,1.0f,1.0f,1.0f;const GLfloat light_position=2.0f,5.0f,5.0f,0.0f;5)定义材质属性值,使用数组来存放材质的颜色值const GLfloat mat_ambient =0.7f,0.7f,0.7f,1.0f;const GLfloat mat_diffuse =0.8f,0.8f,0.8f,1.0f;const GLfloat mat_specular =1.0f,1.0f,1.0f,1.0f;const GL
6、float high_shininess=100.0f;5 5、程序文件与工程名称(标出程序中所有文件名、工程名称及其说明)、程序文件与工程名称(标出程序中所有文件名、工程名称及其说明)Sources 主程序卡通三维动态图的程序6 6、函数模块(程序中各个函数的原型声明及其说明)、函数模块(程序中各个函数的原型声明及其说明)static void display(void)glRotated 定义物体的旋转glColor3d 定义物体的颜色glutSolidSphere 定义半径与经纬度static void key(unsigned char key,int x,int y)键盘回调函数st
7、atic void idle(void)空闲回调函数7 7、使用说明(运行程序的小型说明书)、使用说明(运行程序的小型说明书)点击文件后即出现截图所示的卡通三维动态图。-4-程序设计挑战式课程设计报告8 8、程序开发总结(简要叙述编写本作业的收获与思考)、程序开发总结(简要叙述编写本作业的收获与思考)通过本程序的编写和开发,进一步的提高了自己的基本编程能力,熟悉了C 语言图形模式下的编程,深入地理解了程序中有关函数等方面的知识。通过本程序的训练,使我对 C 语言有了一个更能深刻的了解。通过这次程序开发,我对程序员有了更深刻的认识。我意识到程序员不仅要有过人的思维,还要有足够的耐心,以及合作的意
8、识、独立解决困难的意识。通过这次程序开发,我学到了很多知识,遇到了一些问题,我明白了自己有很多的不足,程序也有缺陷,但这本来就是一个不断尝试、不断完善的过程,需要自己去不断摸索、试验,有了这次的体验,以后我会在这条路上走的更远。-5-程序设计挑战式课程设计报告9、运行截图(附上程序运行的截图画面,至少有运行截图(附上程序运行的截图画面,至少有 1 1 幅,截图越翔实得分越幅,截图越翔实得分越-6-程序设计挑战式课程设计报告-7-程序设计挑战式课程设计报告Windows 中抓取当前活动窗口:Alt+Print Screen,抓取全屏:PrintScreen。或者使用 HyperSnap 等软件(
9、百度搜索)。1010、源程序(附上程序源代码,若是多个文件,标出文件名)、源程序(附上程序源代码,若是多个文件,标出文件名)#include stdio.h#ifdef _APPLE_#include#else#include#endif#include static int slices=16;static int stacks=16;/*GLUT callback Handlers*/static void resize(int width,int height)const float ar=(float)width/(float)height;glViewport(0,0,width,h
10、eight);glMatrixMode(GL_PROJECTION);glLoadIdentity();glFrustum(-ar,ar,-1.0,1.0,2.0,100.0);glMatrixMode(GL_MODELVIEW);glLoadIdentity();static void display(void)/该函数的内容课改动-8-程序设计挑战式课程设计报告 static double a=0;/定义 a 为每次旋转的角度 a=a+0.15;glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);/清除颜色缓冲区和深度缓冲区 glColor3d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C程序设计大作业 openGL 程序设计 作业
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内