计算机图形学结课论文,计算机图形学结课论文精要.doc

计算机图形学结课论文精要

2017届结课论文

《计算机图形学基础教程》

—小球的弹跳运动

学生姓名

学 号

所属学院

专 业 计算机科学与技术

班 级

塔里木大学教务处制

目录

摘 要1

1.背景1

1.1计算机图形学概述1

1.2计算机图形画面的分类2

2.OpenGL概述2

2.1程序的基本结构3

2.2状态机制4

3.方案论述4

3.1小球运动过程4

3.2简单光照模型原理4

4.程序模块分析5

4.1 小球的生成模块5

4.2小球的运动时间模块6

4.3主程序运行模块6

4.4材质定义7

4.5双缓冲技术7

5.总结7

附录 A:程序清单8

附录B: 程序运行结果13

6.致谢14

参考文献:14

小球的弹跳运动

摘 要计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。从处理技术上来看,图形主要分为两类,一类是基于线条信息表示的,如工程图、等高线地图、曲面的线框图等,另一类是明暗图,也就是通常所说的真实感图形。

计算机图形学一个主要的目的就是要利用计算机产生令人赏心悦目的真实感图形。为此,必须建立图形所描述的场景的几何表示,再用某种光照模型,计算在假想的光源、纹理、材质属性下的光照明效果。所以计算机图形学与另一门学科计算机辅助几何设计有着密切的关系。事实上,图形学也把可以表示几何场景的曲线曲面造型技术和实体造型技术作为其主要的研究内容。同时,真实感图形计算的结果是以数字图像的方式提供的,计算机图形学也就和图像处理有着密切的关系。penGL概述

OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL可以与Visual C++紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性;OpenGL使用简便,效率高。

OpenGL基本函数均使用gl作为函数名的前缀,如glClearColor();实用函数则使用glu作为函数名的前缀,如gluSphere()。OpenGL基本常量的名字以GL_开头,如GL_LINE_LOOP;实用常量的名字以GLU_开头,如GLU_FILL。一些函数如glColor*()(定义颜色值),函数名后可以接不同的后缀以支持不同的数据类型和格式。如glColor3b(...)、glColor3d(...)、glColor3f(...)和glColor3bv(...)等,这几个函数在功能上是相似的,只是适用于不同的数据类型和格式,其中3表示该函数带有三个参数,b、d、f分别表示参数的类型是字节型、双精度浮点型和单精度浮点型,v则表示这些参数是以向量形式出现的。

OpenGL定义了一些特殊标识符,如GLfloat,GLvoid。它们其实就是C中的float和void。在gl.h文件中可以看到以下定义:

……

typedef float GLfloat;

typedef void GLvoid;

……

一些基本的数据类型都有类似的定义项。

2.1程序的基本结构

OpenGL程序的基本结构可分为三个部分:

第一部分是初始化部分。主要是设置一些OpenGL的状态开关,如颜色模式(RGBA或ALPHA)的选择,是否作光照处理(若有的话,还需设置光源的特性),深度检验,裁剪等等。这些状态一般都用函数glEnable(...), glDisable(…)来设置,…表示特定的状态。

第二部分设置观察坐标系的取景模式和取景框位置大小。利用了三个函数:

函数void glViewport(left,top,right,bottom):设置在屏幕上的窗口大小,四个参数描述屏幕窗口四个角上的坐标(以象素表示);

函数void glOrtho(left,right,bottom,top,near,far):设置投影方式为正交投影(平行投影),其取景体积是一个各面均为矩形的六面体;

函数void gluPerspective(fovy,aspect,zNear,zFar):设置投影方式为透视投影。

第三部分是OpenGL的主要部分,使用OpenGL的库函数构造几何物体对象的数学描述,包括点线面的位置和拓扑关系、几何变换、光照处理等等。

以上三个部分是OpenGL程序的基本框架,即使移植到

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348274.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

word计算机基础考试题及答案,计算机基础习题及答案题库(期末考试)-word资料(精).doc...

文档介绍:1. 计算机的诞生: 第一台电子计算机是 1946 年在美国诞生的,该机的英文缩写是。答案(A)ENIAC 2. 计算机的诞生: 第一台电子计算机诞生于______ 。答案(C) 美国 3. 计算机的诞生: 第一台电子计算机诞生于______ 。答案(C)1946 年 4. 计算机的诞生: 世界上公…

编译hotspot_从Hotspot JIT编译器打印生成的汇编代码

编译hotspot有时,在对Java应用程序进行性能分析时,有必要了解Hotspot JIT编译器生成的汇编代码。 这对于确定已做出的优化决策以及我们的代码更改如何影响生成的汇编代码非常有用。 在调试并发算法以确保已按预期应用可见性规则时,知道何时发…

计算机硬盘按不同接口,硬盘接口不同 速度差别竟然这么大

硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的类型以及好坏都会直接影响程序运行快慢。说到硬盘接口我们常见的有SATA、PCI-E、M…

计算机导论设计实验,基于抽象知识点的《计算机导论》实验软件设计

Development of Experiment Software for《Computing Essentials》based on the Abstract Knowledge Points1、 College of Computer and Information Science, Southwest University, Chongqing, 400715Abstract:This paper develops an experiment software for 《…

使用Java的@Deprecated前瞻

我偶尔遇到一种情况,我需要引入新的API或构造以供其他人试用,但是我知道在使用某些API后,它可能会根据其他人的反馈而改变。 在这种情况下,我想以某种方式注释该构造,以警告其他开发人员此新添加的构造的暂定性。 在这…

计算机组成原理setb,计算机组成原理与汇编语言4

第四章指令系统指令系统概述指令系统是指某一种计算机所有指令的集合。对计算机而言,这是一组二进制数的输入,实际上是一组电平的输入。这些输入能在一个指令周期内产生人们预先规定的动作。显然这不是一组随机的二进制数据输入。指令系统是联系硬件和软…

计算机通信系统分哪两类,通信系统的组成(数字通信系统由哪几部分组成)

基本系统一般由信源(始发设备)、信宿(接收设备)和信道(传输介质)方式来自源的信息(语言、字符、图像或数据)由终端设备(如电话、电传打字机、传真机或数据终端设备等)转换成电信号。)在发送方,然后由始发设备编码、调制、放大或发送,然后基带信号被转换成…

nosql非关系型数据库_从Datomic出发,革命性的非NoSQL数据库

nosql非关系型数据库我终于设法了解了当今最不寻常的数据库之一,Datomic,并希望与您分享。 感谢Stuart Halloway和他的工作室! 为什么?!? 我们很快就会看到,Datomic与传统的RDBMS数据库以及各种…

你活在一个计算机模拟中吗,一麻省理工教授认为,我们更有可能生活在计算机模拟宇宙中...

一位麻省理工学院的教授表示,我们“更有可能”生活在某种模拟宇宙中,因为我们自己离能够创造超现实的模拟也不远了。(参见在接受解释性网站Vox采访时,计算机科学家Rizwan Virk认为,如果我们生活在信息世界而不是物质世界中&#x…

尽早查看针对Java 11的功能

随着JDK 10即将进入其发布候选阶段 ,有趣的是,开始通过JDK 11观察之后会发生什么。 在撰写本文时,四个JEP ( JDK增强建议 )已正式成为JDK 11的目标(可能会出现)。 这篇文章总结了当前针对JDK 11…

如何在命令行情重启计算机,如何应对“命令式”行情

如果说十月维稳行情,是以劝说,号召并佐以缓发新股为主要行政手段,那么十一月行情的主要特征就是“命令式”的。实践证明,十月行情并不咋地,虎头蛇尾,说明主力并不十分听话,也不卖力,…

服务器系统开机提示0xc000007b,0xc000007b蓝屏解决方法

0xc000007b是一种常见的蓝屏代码,导致出现此蓝屏代码的原因有很多,BIOS设置问题,驱动问题,硬件问题等等。硬件问题对于我们小白来说解决起来有点困难。我给大家带来了解决0xc000007b蓝屏软件问题的方法,赶紧来瞧瞧吧0x…

tms tck_记录合规性–关于TCK,规格和测试

tms tck使用软件规格非常困难。 不论在哪个地方提出; 您最终遇到了一个大问题:是否已实现所有指定的内容并对其进行了测试? 在瀑布驱动的方法学时代,这一直是一个问题,即使在撰写本文的今天,敏捷性和用户故…

3D环动画css3实现,CSS3 3D酷炫立方体变换动画的实现

我爱撸码,撸码使我感到快乐!大家好,我是Counter,本章微博主要利用了CSS3的一些新特性,主要用到关键帧来使3D图形运动起来,涉及到了一些抽象的思想,立体的想象。先给大家看看完成的效果&#xff…

Spring项目的按层打包已过时

我认为Spring应用程序不应该以逐层方法构建。 在我看来,按功能打包更有意义。 首先,让我简要描述每种方法。 “按层打包”(在非Java世界中为“按类型折叠”) 该项目结构根据源代码文件所属的体系结构层将它们分为包/目录&#x…

css怎么控制两个字母,css英文字母数字自动换行且不断词方法

本文章来给各位同学介绍css怎样让英文字母数字自动换行且不断词方法总结,有需要了解的同学可进入参考。当一个定义了宽度的块状元素中填充的全部为纯英文或者纯数字的时候,在IE和FF中都会撑大容器,不会自动换行并且当数字或者英文中带有汉字时…

nmap 查看服务器版本信息,nmap命令-nmap命令扫描服务器信息的格式

用这条命令就可以扫描出目标网络的操作系统和开放端口号nmap-O...0/24上面的扫描信息直接输出到终端,如果想把结果写到文件里,可以用-oN,-oX选项输出到文本文件或xml文件。nmap-O...0/24-oXnmap_info.xml,结果会输出到XML文件&…

java构造函数内部调用_具有内部类构造函数参数的Java Reflection奇数

java构造函数内部调用关于Java内部类 Java允许成员类(在其他类内定义的类),局部类(在语句块内定义的类)和匿名类(无名称的类): class Outer {Object anonymous new Object(){}; //…

Java的新视差控件(JavaFX)

介绍 视差是一种视觉效果,您可以组合以不同速度移动的两个分层图像以获得深度感。 想想一下,当您在道路上行驶时,您会看到附近的树木在快速移动,而距离较远的树木将沿相同的方向移动,但速度较慢,结果是您感…

ajax提交file空指针,excel导入上传文件报空指针错误

页面入口全选导入导出${msg[globals.button.delete.more]}导出jsfunction excelImport() {top.layer.open({type: 1,area: [500, 300],title:"导入数据",content:$("#importBox").html() ,btn: [下载模板,确定, 关闭],btn1: function(index, layero){windo…