华中

科技大学电子科

斗学与技术系

课程设计报告

(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只能执行一

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

  1. android 3d魔方 代码,css实现3d立体魔方的示例代码

    今天来做一个简单的3d魔方 先看效果图吧!把这个看会了,一些网上的3d的相册你就都会了 一.我们先准备好们的html代码 3d立体魔方 好了我们html代码就准备完成了,首先我们要有一个3d的思维,在 ...

  2. c语言sprintf函数 long,基于C语言sprintf函数的深入理解

    printf 可能是许多程序员在开始学习C语言时接触到的 第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf了解多吗?在将各种 ...

  3. 基于CSS的3D旋转画册的制作

    需要注意的点: 1.首先是image的整理,以个人实际开发经验来看,方方正正的照片做出来的效果比较好 2.其次是在html中的盒子的大小和尺寸的构建,以实际情况看自己需要放几张照片来调整盒子的大小(一 ...

  4. CSS 3D炫酷的 旋转魔方

    最近在复习HTML 和 CSS,把以前做的一些小例子拿出来分享一下,也加深自己的印象 css 是通过 transform 来实现3D旋转的,看代码之前,先复习一下相关知识 transform-orig ...

  5. linux环境下基于opengl的3*3可控魔方绘制

    一. 前言 本程序设计使用opengl函数库,在linux环境下运行,绘制一个3*3的魔方,可以通过键盘控制任意层的旋转,达到魔方转动的效果.(参考很多年前一毕业论文,个人觉得写的好) 二. 功能设计 ...

  6. 计算机图形学五角星c语言,计算机图形学实验——利用OpenGL函数绘制五角星

    一.实验名称:五角星的绘制 二.实验目的:了解 OpenGL 程序设计结构,掌握编程环 三.境的设置,掌握绘制线段的方法. 四.实验内容: 1.在 VC++ 环境下 ,练习利用 OpenGL 绘制三角 ...

  7. 基于opengl的3d漫游游戏 - 古堡危机之丧尸围城

    作品名称: <古堡危机> 小组团队名称: 拾荒三人组 日期:2018年12月 目录 第一章 简介 3 前言 3 项目的创意设想.游戏类型.实现的功能.项目意义 3 Opengl 4 作品代 ...

  8. 基于OpenGL的Android系统视频转换功能实现

          第1章OpenGL ES 3D图形编程首先OpenGL.OpenGL的英文全称是OpenGL Graphics Library,中午名称是开发式图形库.OpenGL为程序开发人员定义了一个 ...

  9. 基于OpenGL的地形建模技术的研究与实现

    毕业论文 基于OpenGL的地形建模技术的研究与实现 诚信声明 本人郑重声明:本设计(论文)及其研究工作是本人在指导教师的指导下独立完成的,在完成设计(论文)时所利用的一切资料均已在参考文献中列出. ...

  10. 转-基于OpenGL的3D天空仿真

    在进行3D场景渲染时,天空是必不可少的因素.对于3D天空的模拟在视景仿真系统.计算机游戏.三维动画中有着广泛的应用.但是,目前对于天空的仿真还存在很多不足,一些模拟方法中存在实现复杂.计算耗时.图像分 ...

最新文章

  1. 网络爬虫(urllib超详细使用指南)
  2. mysql数据库删除一条数据后还想让新增数据从空缺id处开始
  3. java用户注册代码解析_java springmvc 注册中央调度器代码解析
  4. 荣之联生物领域再扩张 同清华大学共建生物云实验室
  5. dram和nand哪个难生产_终于有人说清楚了什么是DRAM、什么是NAND Flash
  6. 【三维目标检测可视化】三维点云目标检测与图像融合可视化
  7. 苹果(APPLE)开发人员账号说明及注冊流程(99美元公司版/个人版及299美元企业版)...
  8. 大数据核心技术有哪些 怎么样学好大数据开发
  9. ROS学习笔记六:action-server/action-client
  10. 基于经纬度矩阵计算距离矩阵
  11. IR-61|1895075-34-9|七甲川吲哚类花菁染料near-infrared fluorophore
  12. 《大明王朝》赵贞吉的拉扯
  13. SAP 开发者Access Key 与对象修改Access Key
  14. 达梦数据库DEM(企业管理器)部署实战
  15. Redis集群端口等
  16. TI文档中的名词解释(持续更新中)
  17. cesium 关于feature的知识点
  18. 用html+css3写一个小丸子的头像
  19. 人工智能之Agents
  20. Polyworks脚本开发学习笔记(一)-脚本开发环境

热门文章

  1. 基于flask实现疫情可视化监控系统
  2. 获取计算机登录用户名和密码,查看电脑的登录用户名_查看电脑用户名和密码...
  3. 电路邱关源第五版部分章节总结笔记
  4. C# 使用Panel控件实现窗体嵌套
  5. 如何在工具类中注入Service
  6. 2014年全国最新企业名录免费采集下载
  7. python贴吧签到-百度贴吧签到脚本
  8. 超详版Struts2入门安装教程
  9. [论文]基于强化学习的控制输入非线性水下机器人自适应神经网络控制
  10. Photoshop CS6下载包下载 及破解安装教程