计算机图形学大作业计算机图形学的应用实例班级:学号:姓名:2012-03-12计算机图形学的应用实例一.计算机图像学简介计算机图形学是计算机专业本科生必修的专业基础课。本课程介绍图形显示及图形表示的方法和原理。通过本课程的学习,使学生了解计算机在图形应用方面的基础原理,了解图形应用中的特殊性处理方法,进而学习和掌握计算机在图形领域应用中分析、建模、程序设计等方面知识,为问题的解决提供适宜的模型和办法。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。其主要的目的是要利用计算机产生令人赏心悦目的真实感图形。为此,必须建立图形所描述的场景的几何表示,再用某种光照模型,计算在假想的光源、纹理、材质属性下的光照明效果。事实上,图形学也把可以表示几何场景的曲线曲面造型技术和实体造型技术作为其主要的研究内容。计算机图形学的研究内容非常广泛,如图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法、非真实感绘制,以及科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。整个课程以C语言为例,通过介绍30多个算法和程序设计的例子,阐述计算机图形学的原理、方法和程序设计知识。下面我们将实例分析计算机图形学中出现的一系列的理论在实际图形中的应用。二.多边形的扫面转换与区域填充1.种子填充算法这里讨论的区域指已经表示成点阵形式的填充图形,它是象素的集合。区域可采用内点表示和边界表示两种表示形式。在内点表示中,区域内的所有象素着同一颜色。在边界表示中,区域的边界点着同一颜色。区域填充指先将区域的一点赋予指定的颜色,然后将该颜色扩展到整个区域的过程。区域填充算法要求区域是连通的,因为只有在连通区域中,才可能将种子点的颜色扩展到区域内的其它点。区域可分为4向连通区域和8向连通区域。4向连通区域指的是从区域上一点出发,可通过四个方向,即上、下、左、右移动的组合,在不越出区域的前提下,到达区域内的任意象素;8向连通区域指的是从区域内每一象素出发,可通过八个方向,即上、下、左、右、左上、右上、左下、右下这八个方向的移动的组合来到达。2.区域填充的扫描线算法区域填充的递归算法原理和程序都很简单,但由于多次递归,费时、费内存,效率不高。为了减少递归次数,提高效率可以采用扫描线算法。算法的基本过程如下:当给定种子点(x,y)时,首先填充种子点所在扫描线上的位于给定区域的一个区段,然后确定与这一区段相连通的上、下两条扫描线上位于给定区域内的区段,并依次保存下来。反复这个过程,直到填充结束。区域填充的扫描线算法可由下列四个步骤实现:(1)初始化:堆栈置空。将种子点(x,y)入栈。(2)出栈:若栈空则结束。否则取栈顶元素(x,y),以y作为当前扫描线。(3)填充并确定种子点所在区段:从种子点(x,y)出发,沿当前扫描线向左、右两个方向填充,直到边界。分别标记区段的左、右端点坐标为xl和xr。(4)并确定新的种子点:在区间[xl,xr]中检查与当前扫描线y上、下相邻的两条扫描线上的象素。若存在非边界、未填充的象素,则把每一区间的最右象素作为种子点压入堆栈,返回第(2)步。实例:如下,在windows系统中所自带的画图工具中所含有的功能。我们需要在下图中填充颜色,对此,我们后台的运行中就运用了我们计算机图形学中的相关方法,种子填充算法或扫描线算法等。下图为为填充原图:我们设定现在用的是种子填充法,我们选定图片填充工具,将其放在需要填充的区域,该图标决定了种子所在坐标。根据其算法填充完所需要填充的区域。下图为填充以后的图片:三.计算机图形的几何变换图形变换一般是指对图形的几何信息经过几何变换后产生的新的图形。图形变换既可以看做是坐标系不变而图形变动,变动后的图形在坐标系中的坐标值发生变化;也可以看做图形不懂而坐标系变动,变动后,该图形在新的坐标系下具有新的坐标值,而这两种情况本质上是一样的。对于线框图的变换,通常一点变换作为基础,把图形的一系列顶点做几何变化后,链新的顶点即可产生新的图形。对于用参数方程描述的图形,可以通过参数方程做几何变换,实现对图形的变换。目前,我们讨论的基本上是图形拓扑关系不变的几何变换,若引进不同的几何变换算子,即可以实现改变图形拓扑关系的几何变换,由此可以产生许多形状各异,复杂的图形。下面,我们通过具体实例展示计算机图形学中的几何变换:进行平移变换后:进行比例变换:进行错切变换:进行旋转变换:进行对称变换:由上面的例子我们简要的展示了计算机图形学中的各种图形的基本几何变换,我们可以通过这些几何变换的组合来实现复杂图形的制作。四.三维图形基础用计算机生成三维形体的真是图形,是计算机图形学研究的重要内容之一。真实图形在仿真模拟,几何造型,广告影视,指挥控制,科学计算的可视化等许多领域都有广泛的应用。当我们用笔绘图仪或者其他画线设备绘制图形时,要解决的主要是消除隐藏线问题。而当我们用光栅图形显示仪的像素阵列来绘制物体的明安图时,就必须解决消除隐藏面问题。另外,在使用光栅图形显示器绘制物体的立体图时,不仅要判断物体之间的遮挡关系,还必须处理物体表面的明暗效应,以便使用不同的色彩灰度,来增加图形的真实感。下面我们通过具体图形来表现计算机图像学中三维图形的真实感处理方法:1.为了表示物体的遮挡关系,我们通过消除隐藏面和隐藏线得到效果;2.光照引起的物体包表面颜色的自然分布:从上面的技术制作出的大象的真实感就可以看出光影效果的对图形的真实感的重要性。五.学习心得通过对计算机图形学的学习,对用计算机实现图形的各种处理操作有了全面的形象和理论上的了解。也对图形学在现实中的应用有了浓厚的兴趣,虽然学习时间短暂,但是在以后,只要有机会,我还是会继续学习相关方面的知识。