[计算机]计算机图形学导论
计算机图形学导论
今天,对许多人而言,计算机和计算机图形学已经成为日常生活不可分割的一部分。计算机
图形学在科学、工程、医药、娱乐、广告、图形艺术、精细艺术、商业、教育、训练等众多的领
域得到了普遍的应用。今天,如果要学习程序设计,掌握二维图形学知识是起码的,大多数情况
下还要涉及到三维图形学知识。就连平常我们与计算机打交道也是在图形界面下进行的。为了说
明计算机图形学的发展有多快,可以看看SIGGRAPH 的发展,SIGGRAPH 是ACM(Association of
Computing Machinery) 图形学专业委员会(Special Interest Group on GRAPHics)的年会,七十年代早
期的SIGGRAPH 只有几百人参加,但现在这个年会的参加者已达数万之众。
1-1 计算机图形学概述
计算机图形学是一门复杂而又多样化的技术。要想了解这项技术,必须把它分成几个易于操
作的部分。我们可以把计算机图形学的最终产品看作一幅图形,当然这幅图形可以用于各种目的,
比如,工程图样、用户手册的图示、商业图表、建筑效果图、广告、医学图像,或是动画的一帧。
图形是计算机图形学的关键概念。我们必须考虑以下问题:
如何在计算机中表示图形?
如何准备图形的数据?
如何显示已准备好的图形?
如何实现与图形与人的交互操作?
这里,图形是一个广义的概念,凡是可以在图形设备上输出的点、线和文本的集合都可以称
为图。
图形的表示方法
尽管许多算法以多边形和边作为图形的数据输入,但多边形和边最终都可以用点表示。因此
点才是图的基本组成元素。算法中与点具有同等重要性的是点的组织方式。为了说明这一点,举
第一象限的一个单位正方形为例。单位正方形可以用四个点表示(见图1-1):
P (0,0) P (1,0) P (1,1) P (0,1)
1 2 3 4
生成这一正方形的算法可以是
按顺序连接P ,P ,P ,P ,P
1 2 3 4 1
若用四条边描述来描述这个单位正方形,即
E =P P E = P P E =P P E =P P
1 1 2 2 2 3 3 3 4 4 4 1
这里,正方形生成的算法相应就为
按顺序连接E E E E 四条边
1 2 3 4
3
所以,不管是用点还是用边都可以将这个单位正方形表示为一个单独的多边形,也就是
S =P P P P P 或 S =E E E E
1 1 2 3 4 1 1 1 2 3 4
其中,基本元素的坐标可以用两到三个数表示,这取决于点是二维还是三维的。因此,用
(X ,Y )或(X ,Y ,Z )可以代表二维或三维空间中的一个点,用两个点可以表示一条线或一条
1 1 1 1 1
边,而用三个和三个以上的点可以表示多边形。曲线通常用短直线段逼近表示。
材料纹理的表示相当复杂,在许多情况下要使用曲线和点阵。本质上讲材料纹理还是用算法
描述下的点、线的集合来表示的。除非用户对纹理进行模式识别、字型设计和图形硬件设计等研
究,否则就无须了解纹理的这些细节问题。
图1-1 图的数据描述
表示图形的数据准备
图本质上是由点和如何显示这些点的绘图算法表示的。这些信息在显示以前一般存储在数据
库文件中。复杂画面不仅数据库复杂,其存取算法也复杂。这些复杂数据库中的数据以各种方式
组织在一起,例如,环结构、二叉树结构、四叉树结构等等,这些结构一般称为数据结构。数据
库本身可以包含指针、子结构和其他非图的数据。数据库及其存取算法的设计仍然是当前研究的
一个领域,但这方面内容不在本书讨论之列。许多计算机图形应用只使用简单的图形,这样数据
结构就很简单,用户设计起来也比较容易。最简单的例子就是线性列表,令人惊讶的用这个最简
单的数据结构就可以应付一些比较复杂的图形了。
由于点是图形数据库的基本组成元素,点的基本操作自然是要研究的。当把点看作几何图形
实体时,点的基本操作有三种:不可见地把光束、绘图笔、光标、绘图机头(以后也称作光标)
移动到某一点;从起点到给定点画一条可见直线;在给定位置显示一个点。点的位置可以由绝对
坐标或相对(增量)坐标给出。在相对(增量)坐标中,点的位置由该点到前一个点