计算机专业课程设计OPENGL旋转立方体.docx
《计算机专业课程设计OPENGL旋转立方体.docx》由会员分享,可在线阅读,更多相关《计算机专业课程设计OPENGL旋转立方体.docx(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、西安文理学院计算机科学系课程设计报告设计名称:软件课程设计设计题目:旋转立方体的设计学生学号:专业班级: 学生姓名: 学生成绩:指导教师职称:课题工作时间:2023.5.31 至 2023.6.11说明:1、报告中的任务书、进度表由指导教师在课程设计开头前填写并发给每个学生;四、五两项中英文摘要由学生在完成综合设计后填写。2、学生成绩由指导教师依据学生的设计状况给出各项分值及总评成绩。3、指导教师评语一栏由指导教师就学生在整个设计期间的寻常表现、设计完成状况、报告的质量及辩论状况,给出客观、全面的评价。4、全部学生必需参与课程设计的辩论环节,凡不参与辩论者,其成绩一律按不及格处理。辩论小组成员
2、应由 2 人及以上教师组成。5、报告正文字数一般应不少于 3000 字,也可由指导教师依据本门综合设计的状况另行规定。6、寻常表现成绩低于 6 分的学生,取消辩论资格,其本项综合设计成绩按不及格处理。计算机科学系课程设计任务书学生姓名 设计题目内容概要:王雅宁学号14102080210专业班级2023 级软件工程 2 班旋转立方体的设计画出一个正方体,并将它旋转起来。文献资料:1. 谭浩强C 程序设计M第三版 清华大学出版社 20232. 严蔚敏.吴伟民 数据构造M高等教育 20233. 钱能 C+程序设计教程M其次版清华大学出版社 20234. 郑丽 Visual Basic 程序设计清华大
3、学出版社 2023-10-29设计要求:1 用 C/C+或 VB 实现;2. 友好性:界面要友好;3. 可读性:源程序代码清楚、有层次;4. 当鼠标离屏幕中心的位置远近可以打算立方体旋转速度的快慢。工作期限:设计工作自 2023 年 5 月 31 日至 2023 年 6 月 11 日止。指导教师:系主任:日 期:2023 年 5 月 28 日计算机科学系课程设计进度安排表专业: 软件工程姓名: 王雅宁学号: 14102080210日期5 月 31 日 6 月 1 日6 月 2 日6 月 3 日6 月 4 日6 月 6 日6 月 7 日6 月 8 日6 月 9 日6 月 10 日6 月 11 日
4、6 月 11 日月 日 月 日月 日 月 日月 日月 日月 日 月日月 日月 日月 日 月 日月 日 月 日月 日月 日月 日月 日内容备注分析题目,查阅相关资料拟定整体方案,编写程序程序编写调试程序整理报告辩论指导教师签名:2023 年 5 月 28 日指导教师评语指导教师:签字日期:2023 年6 月10日辩论记录表学生姓名:学号:班级: 辩论地点:辩论内容记录:合计各项分值分值答评分标准实际合计得分得分备注在规定时间内能就所设计的内容辩成绩2510进展阐述,言简意明,重点突出, 论点正确,条理清楚。15在规定时间内能准确、完整、流利地答复教师所提出的问题。辩论小组成员签字:2023 年6
5、 月 11 日成绩评定表学生姓名:学号:班级:类别 合计各项分值分值评分标准实际合计得分得分备注寻常表现1010按时参与设计指导,无违反纪律情况。按设计任务书的要求完成了全部20任务,能完整演示其设计内容,符完成状况30合要求。能对其设计内容进展具体、完整的10介绍,并能就指导教师提出的问题进展正确的答复。报告文字通顺,内容翔实,论述充10分、完整,立论正确,构造严谨合理;报告字数符合相关要求,工整标准,整齐划一。5课题背景介绍清楚,综述分析充分。报告质量355设计方案合理、可行,论证严谨, 规律性强,具有说服力。5符号统一;图表完备、符合标准要求。5能对整个设计过程进展全面的总结,得出有价值
6、的结论或结果。5参考文献数量在 2 篇以上,格式符合要求,在正文中正确引用。在规定时间内能就所设计的内容10进展阐述,言简意明,重点突出,辩论状况2515论点正确,条理清楚。在规定时间内能准确、完整、流利地答复教师所提出的问题。总评成绩:分指导教师:签字日期: 2023 年6月 15日摘 要软件工程专业经过两年的课程学习,已经积存了相关高级语言程序设计的根本学问。画出正方体并使之旋转,这一题目考察了程序设计自顶而下、逐步细化的相关根本思想。题目难点在于实现可视化界面的交互、以及图像的旋转过程。分析题目可以得出程序可以大致分为两个方面的内容:1. 画出一个正方体。2. 使正方体旋转起来。经过查找
7、相关资料,本程序承受功能强大的图形库 OPENGL 并调用一系列 WINDOWS API 承受 C/C+语言在 Microsoft Visual C+6.0 环境下编写。很好的解决了用 C/C+编写图形界面的难点问题。通过 Win32 平台的 OPENGL API 实现了逼真的三维旋转效果关键词: 正方体;旋转;可视化;OPENGLAbstractSoftware Engineering after two years course of study, has accumulated a relevant high-level language programming basics. Draw
8、 the cube and make it spin, this subject examines the design top-down process, gradually refining the basic idea related.Subject difficulty is to achieve interactive visual interface, and image rotation process.Analysis procedures can be drawn subject can be broadly divided into two aspects:1. Draw
9、a cube.2. 2. To make a cube spin.After find relevant information, this program features a powerful graphics library OPENGL and call a WINDOWS API using C / C + + language in Microsoft Visual C + +6.0 environment preparation.Good solution using C / C + + graphical interface written and difficult prob
10、lems. OPENGL API through the Win32 platform to achieve a realistic three-dimensional rotation effectKeywords :cube;spin;visual;OpenGL西安文理学院计算机科学系课程设计报告目 录目 录I第一章 课题背景21.1 引言21.1.1 背景及目的21.2 题目概述21.2.1 问题及技术要求21.2.2 理论依据及工作内容2其次章 设计简介及设计方案论述32.1 设计简介32.2 OPENGL 图形库简介32.2.1 OPENGL 历史简介32.2.2 OPENGL 特点
11、32.2.3 OPENGL 工作挨次42.3 OPENGL 简洁编程方法42.3.1 OPENGL 根本语法42.3.2 OPENGL 状态机制42.3.3 OPENGL 根本构造52.4 程序所使用的 OPENGL 库函数52.5 OPENGL 及 WINDOWS 坐标系62.6 WINDOWS 下配置 OPENGL 环境72.7 WINDOWS 消息机制72.8 大体设计方案8第三章 具体设计103.1 OPENGL 的绘制工作103.1.1 OPENGL 的初始化工作103.1.2 OPENGL 的主体绘制工作103.2 鼠标掌握正方体的旋转113.3 重置 OPENGL 窗口123.4
12、 WINDOWS 中 OPENGL 窗体设置及创立123.5 完成 WINDOWS 主程序13第四章 设计结果及分析144.1 设计结果分析144.2 进一步美化程序14总结15致谢16参考文献17附录18- I -西安文理学院计算机科学系课程设计报告第一章 课题背景1.1 引言随着专业课程学习的深入,相关高级语言程序设计的学问已经有所积存,如何更好的把握并应用已经成为当务之急。通过软件工程课程设计的过程能够学习程序设计的根本思想以及整体流程。1.1.1 背景及目的根本高级语言程序设计以及相关专业根底课程已经学习完毕,在学习过程中遇到的一些难点问题,为了综合以前学过的课程学问并融会贯穿。可以通
13、过课程设计的独立完成来通过相关途径解决,从而能够更好的把握程序设计的思想,提升编程力量。1.2 题目概述1.2.1 问题及技术要求此题:画出一个正方体,并将它旋转起来。主要应实现以下 4 点根本要求:1. 用 C/C+或 VB 实现;2. 友好性:界面要友好;3. 可读性:源程序代码清楚、有层次;4. 当鼠标离屏幕中心的位置远近可以打算立方体旋转速度的快慢。1.2.2 理论依据及工作内容题目难点在于实现可视化界面的交互、以及图像的旋转过程。分析题目可以得出程序可以大致分为两个方面的工作内容:1.画出一个正方体。2.使正方体旋转起来。通过在互联网上查找资料,我打算使用 OPENGL 图形库来解决
14、 C/C+编写图形界面困难的问题。- 10 -其次章 设计简介及设计方案论述2.1 设计简介为了实现本程序的两大功能, 打算承受 OPENGL图形库并调用一系列WINDOWS API 承受 C/C+语言编写。首先,应生疏 OPENGL 在 WIN32 平台下的相关 API,以及其余 WINDOWS 窗口交互的相关接口方法,来构建窗口的内容。其次,生疏了解OPENGL 库函数在窗体中实现绘图既绘制正方体,实现正方体旋转功能的相关函数。最终,实现 OPENGL 与 WINDOWS 的交互的过程,完成程序及注释。2.2 OPENGL 图形库简介2.2.1 OPENGL 历史简介OpenGL 是 SG
15、ISilicon Graphics Inc.公司对 IRIS GL 进展改进,扩展可移植性, 形成的一个跨平台开放式图形编程接口,利用它可以很便利地开发出有多种特别视觉效果(如光照、纹理、透亮、阴影)的三维图形 。由于 OpenGL 承受类似 C 语言的语法,所以对于学过 C 语言的人来说使用起来特别便利。2.2.2 OPENGL 特点从程序开发人员的角度来看,OpenGL 是一组绘图命令的 API 集合。利 用这些 API 能够便利地描述二维和三维几何物体,并掌握这些物体按某种方式绘制到显示缓冲区中。OpenGL 的 API 集合供给了物体描述、平移、旋转、缩放、光照、纹理、材质、象素、位图
16、、文字、交互以及提高显示性能等方面的功能,根本涵盖了开发二、三维图形程序所需的各个方面。与一般的图形开发工具相比,OpenGL 具有以下几个突出特点:(1) 应用广泛(2)跨平台性(3) 高质量和高性能(4)精彩的编程特性(5)网络透亮性2.2.3 OPENGL 工作挨次OpenGL 的工作挨次就是一个从定义几何要素到把象素段写入帧缓冲区的过程。在屏幕上显示图象的主要步骤是以下 3 步: 1构造几何要素(点、线、多边形、图像、位图),创立对象的数学描述。在三维空间放置对象,选择有利的观看点。 2计算对象的颜色,这些颜色可能直接定义,或由光照条件及纹理间接给出。 3光栅化,把对象的数学描述和颜色
17、信息转换到屏幕的象素。2.3 OPENGL 简洁编程方法2.3.1 OPENGL 根本语法OpenGL 根本函数均使用 gl 作为函数名的前缀,如 glClearColor;实用函数则使用 glu 作为函数名的前缀,如 gluSphere。OpenGL 根本常量的名字以 GL_开头,如 GL_LINE_LOOP;有用常量的名字以 GLU_开头,如GLU_FILL。一些函数如 glColor*(定义颜色值),函数名后可以接不同的后缀以支持不同的数据类型和格式。如 glColor3b()、glColor3d()、 glColor3f()和 glColor3bv()等,这几个函数在功能上是相像的,只
18、是适用于不同的数据类型和格式,其中 3 表示该函数带有三个参数,b、d、f 分别表示参数的类型是字节型、双精度浮点型和单精度浮点型,v 则表示这些参数是以向量数组形式消灭的。OpenGL 还定义了一些特别的类型名,如 GLfloat,GLvoid。它们其实就是 C 中的 float 和 void。在 gl.h 文件中可以看到以下定义:typedef float GLfloat; typedef void GLvoid;一些根本的数据类型都有类似的定义。2.3.2 OPENGL 状态机制OpenGL 的工作方式是一种状态机制,它可以进展各种状态或模式设置,这些状态或模式在重转变它们之前始终有效。
19、例如,当前颜色就是一个状态变量,在这个状态转变之前,绘制的每个象素都将使用该颜色,直到当前颜色被设置为其它颜色为止。OpenGL 中大量地使用了这种状态机制, 如颜色模式、投影模式、单双显示缓存区的设置、背风光的设置、光源的位置和特性等等。2.3.3 OPENGL 根本构造OpenGL 程序的根本构造可分为三个局部:第一局部是初始化局部,主要是设置一些 OpenGL 的状态开关,如颜色模式(RGBA 或 ALPHA 等)的选择,是否作光照处理(假设有的话,还需设置光源的特性),深度检验,裁剪等等。这些状态一般都用函数 glEnable, glDisable来设置,中为相应的状态。其次局部设置观
20、看坐标系下的取景模式和取景框位置及大小。主要利用了三个函数:1. 函数 void glViewport(left, top, right, bottom):设置在屏幕上的窗口大小, 四个参数描述屏幕窗口四个边界坐标(以象素表示);2. 函数 void glOrtho(left, right, bottom, top, near, far):设置投影方式为正交投影(平行投影),其取景体积观看体是一个各面均为矩形的六面体; 3函数 void gluPerspective(fovy, aspect, zNear, zFar):设置投影方式为透视投影,其取景体积观看体是一个截头锥体棱台,在这个体积内的
21、物体投影到锥体的顶点。第三局部是 OpenGL 的主要局部,使用 OpenGL 的库函数构造几何物体对象的数学描述,包括点线面的位置和拓扑关系,几何变换,光照处理等等。2.4 程序所使用的 OPENGL 库函数1OpenGL 函数库分为以下几类:(1)OpenGL 核心库:gl115 个函数(2)OpenGL 编程关心库:aux31 个函数(3)OpenGL实 用 程 序 工 具 包 OpenGLutilitytoolkit , GLUT : glut30 多个函数(4) Windows 专用库:wgl6 个函数(5) OpenGL 有用库(GLU)利用较低层 OpenGL 命令编写一些执行特
22、别任务的例程,如纹理映射、坐标变换、NURBS 曲线曲面等。GLU 库函数前缀都用 glu。(6)OpenGL 的 X Window 系统扩大(GLX)在使用 X Window 系统的机器上,供给一种建立 OpenGL 现场(context), 并把它与可绘(draw able)窗口关联起来的方法。GLX 作为 OpenGL 的附件提供。GLX 库函数前缀为 glx。(7)OpenGL Programming Guide 关心库(Auxiliary Library)这个库建立了一系列简洁而又较完整的编程例子,例如初始化窗口、监控输入,以及绘制一些三维几何体等函数。关心库函数用前缀 aux。在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机专业 课程设计 OPENGL 旋转 立方体
限制150内