3D魔方周喆报告.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3D魔方周喆报告要点

华中科技大学光电学院 课程设计报告 2016年5月 名 称: 软件课程设计 题 目: 基于OpenGL的3D旋转魔方实现 院 系: 光学与电子信息科技学院 班 级: 集成1502班 学 号: U201514045 学生姓名: 周 喆 指导教师: 刘 卫 忠 设计周数: 13 成 绩: 日期: 2016 年 5月 23日 基于OpenGL的3D旋转魔方实现 ——个人报告 周喆 一.软件课设的目的 在当今这一信息时代,学好计算机编程语言有着不言而喻的重要性,对我们集成专业的学生来说,掌握好C语言,了解计算机程序设计与编写,对将来学习单片机,硬件描述语言等有着重要的启发引导作用。这个课程的设置是为了我们了解软件编写的过程,在实践操作中了解C语言的应用,培养良好的编程思维与健康的编程习惯,同时对编程产生兴趣。在程序设计的过程中查阅资料,发现问题,解决困难,提高了我们的能力。 前期的学习 刚开始接触这个课设,我很是畏难,对结构体、函数等C语言知识一无所知,更不要说win32程序的创建和opengl的函数了。于是我提前自学了C语言的基础知识,了解了结构体、函数、以及win32程序编写的一些知识。另外,在网站上查询了大量资料,对openg中各个函数的功能有了初步的了解与认识,通过实践操作,体会到opengl函数的具体作用。 三.取得的成果 通过这次软件课程设计,我自学了许多C语言的知识,了解了老师上课讲授的知识的具体应用。在看懂老师的2阶魔方的程序的基础上又参考了一些前人的cpp程序,最终完成了自己的3阶魔方小程序。其可以在一定视线范围内自我旋转与平移,也可以实现各个层面的随机旋转,还可以通过键盘控制自由运动。同时,通过各个层面的贴图我制作出一个非常漂亮的魔方,载入了背景音乐Beyond乐队的《不再犹豫》增加了程序的趣味性。 同时,在这次课设中我学习了大量的C语言的知识,对课本上比较抽象的知识有了相对深入的了解,进行大量实践,学习了opengl库中许多重要的函数,掌握了window程序开发的一些步骤,与软件设计中的一些技巧。 四.完成的工作 在整个工作中作为小组的组长我做的工作如下:建立整个工程,对整个工程中的变量定义,函数声明与应用;实现了纹理的创建加载与映射,创造出一个自认为比较漂亮的魔方体;了解Win32程序消息循环机制,通过计时器的应用,实现三阶魔方各层面绕各个轴的各个方向随机旋转,并能反复循环;对整个程序进行调试,修改错误,解决功能实现过程中出现的问题,对一些算法进行优化,并加入一些属于我们小组自己的特色,如背景的更改,背景音乐的添加。最后完成了我们小组整体实验报告。 五.功能的实现 (1) 实现贴图 为了对中午27个小立方体的各个面进行贴图操作步骤如下。 创建全局纹理数组 GLuint picture[6]; 加载位图文件创建加载纹理 将位图读取到内存空间,实现纹理的创建 AUX_RGBImageRec *TextureImage[6]; // 创建一个纹理图像数组 for(int i=0; i6; i++) // 遍历位图名称数组,根据位图名称分别生成 { ?? if (TextureImage[i]=LoadBMP(pictures[i])) // LoadBMP为之前定义的函数通过文件指针的运用,根据位图文件的名称进行加载,并判断文件是否加载成功。 加载位图i成功,修改状态标志变量Status为TRUE ?? { ??? Status=TRUE;???????? ?? glGenTextures(1, picture[i]);???? // 为第i个位图创建纹理 ?? glBindTexture(GL_TEXTURE_2D, picture[i]); // 将生成的纹理的名称绑定到指定的纹理上 ?? glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[i]-sizeX, TextureImage[i]-sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, Textu

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档