c语言 opengl函数魔方,基于OpenGL的3D旋转魔方实现汇总.docx

华中

科技大学电子科

斗学与技术系

课程设计报告

(2010-- 2011年度第2学期)

称:

目:

系:

级:

号:

学生姓名:

指导教师:

设计

调数:

绩:

日期:

软件课程设计

基于QpenGL的3D旋转魔方实现

PAGE

PAGE #

1.课程设计介绍

1.1目的

1.2内容

1.3取得的成果

2.程序分析

2.1

程序原理

2.2

程序流程

2.3

数据结构

13

2.4

重要函数

13

3.程序分析与结果演示

16

3.1成果演示

16

3.2程序分析

17

4.出现过的问题……

18

5.心得和小节

…19

1.课程设计介绍

1.1目的

21世纪是高科技时代,是信息技术时代,而计算机技术无疑会引领各行 各业,为我们带来一个全新的时代。作为新世纪的接班人,我们必须拥有良 好的计算机应用能力,才能跟上世界发展的大流,不至于在激烈的竞争中被 淘汰。而程序作为计算机的灵魂,因此编程能力对当代大学生来说至关重要。

通过本课程单元的学习,可以对软件工程项目从整体上有一个较清晰的了解 和认识;可以提高自身软件编程能力,培养对计算机编程兴趣,培养良好的 编程习惯。同时编程时的态度和方法对我们今后的学习和工作也有重要影响。

所以整体看来软件课程设计这门课程提高了我们计算机使用水平,培养了我 们良好的学习态度,对我们个人的发展而言有着重要的意义。

1.2内容

(1)巩固和加强c语言相关编程知识,学会用 Visual C++6.Q进行c语言 编程。

(2)掌握程序设计流程和思想,模块化结构分析以及程序设计流程,初

步培养需求分析、软件测试、调试的能力。

(3)掌握win32相关编程知识,了解 windows程序内部运行机制。

(4)掌握OpenGL贴图技术原理与函数实现,掌握 OpenGL几何的移动、 旋转等模式变化的原理。

(5 )掌握魔方图形构造原理,在掌握二阶魔方构造原理的基础上,构造 出三阶魔方并实现其旋转。

1.3取得的成果

在理解和掌握老师所给的范例程序的基础上,借助 Win32平台进行了一 系列调试和学习,熟练掌握了 Win32 AppIication开发流程。同时也学习和了 解了 OpenGL的基本知识,掌握了一些OpenGL的重要技术与重要函数的使

用,编写了一些简单的OpenGL程序。在比较透彻的了解了二阶魔方的构造 原理后,成功地构造出了三阶魔方,换上了自己班级同学的图片,并且在一

个小立方体的六个面上贴上了不同的图片。 能够比较完美的实现三阶魔方各

个层面的随机旋转,并且把窗口背景设置为红色。为了使程序更加有趣,我

在程序中导入了刘德华的《爱你一万年》这首歌,使魔方在旋转的同时能够

播放歌曲。除此之外,我还实现了一种三阶魔方自由移动的屏保效果:即三 阶魔方在旋转的同时能够在屏幕内部自由移动,并且在边缘无限次的反弹。

在魔方平移的过程中同样可以通过四个方向键来控制魔方的移动。当松开方

向键后,魔方会继续按照先前的方式自由移动。

2.程序分析

2.1程序原理

(1) OpenGL

OpenGL是为Open Graphics Library的简称,它是3D绘图工业标准,广泛

地应用于计算机3D绘图领域。它是个专业的开放的 3D程序接口,是一个功

能强大,调用方便的底层3D图形库。它独立于窗口系统和操作系统,以它为

基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL可以与

Visual C++紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的 正确性和可靠性;它具有七大功能:建模、变换、颜色模式设置、光照和材 质设置、纹理映射、位图显示和图象增强和双缓存动画功能。OpenGL使用简

便,效率高。

本项目是在Visual C++6.0开发环境下,使用OpenGL函数库,绘制魔方并

实现魔方贴图、随机旋转、以及键盘控制等功能。采用基本图形的绘图函数 及定位函数,添加相应纹理来实现魔方模型的绘制。 通过读取载入BMP文件, 应用纹理贴图技术来完成对魔方旋转面的处理。通过OpenGL中对图形的旋转 和平移函数来实现对魔方整体的旋转和平移。

(2)旋转

在建立好空间三维模型后,要实现魔方体每一层面的旋转。而魔方体每一 层面的旋转归结于每一个小立方体的旋转。每个小立方体的旋转又最终归结 于每个点的旋转。对于一个坐标为(x,y,z )的点,如果围绕z轴逆时针旋转 角度为a,则旋转之后z坐标不变,x和y坐标分别变为x*cosa - y*sina ,

x*s ina + y*cosa ,如图 1 所示:

图1

这样,实现了每个点的旋转,针对每个立方体只需采用循环对 8个点均采

取旋转操作就可实现一个立方体的旋转。

消息循环与定时器

由于程序在运行时CPI只能执行一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值