数字化设计与制造技术及应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.4 计算机图形处理技术

在CAD工作站中,对象的几何表示是以计算机图形学为基础的。计算机图形学可以定义对象以及不同视图的生成、表示和处理。对象和不同视图的表示可借助计算机软、硬件及图形处理设备来实现。

计算机绘图技术起源于20世纪50年代,以后随着计算机软、硬件技术的不断进步和图形处理技术的出现,计算机图形处理技术得到迅速发展。1950年,世界上第一台图形显示器“旋风一号”在美国问世,解决了图形处理问题。1958年,美国Calcomp公司制成滚筒式绘图仪,Gerber公司制成平板式绘图仪,解决了图形输出问题。1963年,I.E.Sutherland提出并实现了一个人机交互图形系统(Sketchpad系统),首次使用了Computer Graphics(计算机图形学)这个专用名词,全面揭开了计算机绘图研究的序幕。20世纪90年代,计算机图形处理技术进入开放式、标准化、集成化和智能化的发展时期。光栅扫描式大屏幕彩色图像终端、工程扫描仪、静电绘图机等设备的功能已很完善,计算机图形处理发展到三维实体设计,大量有实用价值的图形系统及功能良好的输入、输出设备相继普及、投入使用并获得效益,以微机为基础的计算机绘图系统得到普及应用。

计算机图形学的工程应用领域很广。利用计算机图形学,可以增强用户与计算机之间的交互能力。计算机图形学是简化了的可视化输出与复杂数据以及科学计算之间连接的桥梁。一幅简单的图形可以代替大量的数据表格,能够为用户快速解释数量与特性等信息。例如,人们能够在计算机上模拟并预测汽车的碰撞问题,模拟减速器在不同速度、载荷和工程环境下的性能等。

2.4.1 图形的概念

从图形的实际形式来看,可称为图形的有人类眼睛所看到的景物,用摄影机、录像机等装置获得的照片,用绘图仪器绘制的工程图,各种人工美术绘图和雕塑品,用数学方法描述的图形(包括几何图形、代数方程或分析表达式所确定的图形)。狭义地说,只有最后一类才被称为图形,而前面一些则分别称为景象、图像、图画和形象等。因计算机图形处理的范围早已超出用数学方法描述的图形,故若要用一个统一的名称来表达各类景物、图片、图画、形象等所表示的含意,则“图形”比较合适,它既包含图像的含义,又包括几何形状的含义。

从构成图形的要素来看,图形是由点、线、面、体等几何要素和明暗、灰度、色彩等非几何要素构成的。例如,一幅黑白照片上的图像是由不同灰度的点构成的,几何方程x2+y2=R2确定的图形则是用一定灰度、色彩且满足这个方程的点所构成的。因此,计算机图形学研究的图形不仅有形状,而且有明暗、灰度和色彩,这是与数学中研究的图形的不同之处,它比数学中描述的图形更为具体。但它仍是一种抽象,因为一个玻璃杯与一个塑料杯只要形状一样,透明度一样,从计算机图形学的观点来看,它们的图形就应该是一样的。

因此,计算机图形学中所研究的图形是从客观世界的物体中抽象出来的带有灰度或色彩、具有特定形状的图或形。在计算机中表示一个图形常用的方法有点阵法和参数法两种。

点阵法是用具有灰度或色彩的点阵来表示图形的一种方法,它强调图形由哪些点组成,并具有什么灰度或色彩。例如,通常的二维灰度图像就可用以下矩阵表示:

其中,Piji=1,2, …, n; j=1,2, …, m)表示图像在(xi, yj)处的灰度。

参数法是以计算机中所记录图形的形状参数与属性参数表示图形的一种方法。形状参数可以是描述图形形状的方程的系数、线段的起点和终点等,属性参数则包括灰度、色彩、线型等非几何属性。

人们通常把参数法描述的图形叫作参数图形(简称图形),而把点阵法描述的图形叫作像素图形(简称图像)。习惯上也把图形叫作矢量图形(Vector Graphics),把图像叫作光栅图形(Raster Graphics)。CAD系统从诞生到现在一直保留着以矢量图形的形式存储图形信息的特色,其他的图像软件如Paint和PhotoShop,都以光栅图形的形式存储图形信息。光栅图形与矢量图形的区别可由图2.6看出。图2.6(a)和图2.6(b)分别是用Word绘制的矢量图形和用Paint绘制的光栅图形,从中看不出它们有多大的区别。但是将图形放大后,如图2.6(c)和图2.6(d)所示,光栅图形变得模糊,而矢量图形可以任意缩放而不会影响图形的输出质量。

图2.6 矢量图形与光栅图形的对比

计算机图形学的研究任务就是利用计算机来处理图形的输入、生成、显示、输出、变换以及图形的组合、分解和运算。

2.4.2 图形系统与图形系统标准

计算机图形系统是CAD软件或其他图形应用软件的重要组成部分。计算机图形系统包括硬件和软件两大部分,硬件部分包括图形的输入、输出设备和图形控制器等,软件部分主要包括图形的显示、交互技术、模型管理和数据存取交换等方面。对于一个图形应用程序的用户而言,其面对的是在特定图形系统环境上开发的一个具体的应用系统。对于一个图形应用程序开发人员而言,其一般面对的是三种不同的界面,有三种不同的任务:一是设备相关界面,需要开发一个与设备无关的图形服务软件;二是与设备无关的系统环境,需要开发一个应用系统支持工具包;三是应用环境,应据此开发一个实用的图形应用系统。

1.图形系统的基本功能与层次结构

一个计算机图形应用系统应该具有的最基本的功能有以下几点:

(1)运算功能。它包括定义图形的各种元素属性、各种坐标系及几何变换等。

(2)数据交换功能。它包括图形数据的存储与恢复、图形数据的编辑以及不同系统之间的图形数据交换等。

(3)交互功能。它提供人机对话的手段,使图形能够实时地、动态地交互生成。

(4)输入功能。它接收图形数据的输入,而且输入设备应该是多种多样的。

(5)输出功能。它实现在图形输出设备上产生逼真的图形。

不同的计算机图形系统根据应用要求的不同,在结构和配置上有一定的差别。早期的图形系统没有层次形式,应用程序人员开发图形软件受系统的配置影响很大,从而导致图形系统的开发周期长,而且不便于移植。计算机图形的标准化进程使得图形系统逐步具有层次概念,并且各层具有标准的接口形式,从而提高了图形应用系统的研制速度和使用效益。图2.7是基于图形标准化的形式而得出的一个图形系统的层次图。

图2.7 图形系统的层次结构

API(Application Programming Interface)是一个与设备无关的图形软件工具,它提供了丰富的图形操作,包括图形的输出元素及元素属性,图形的数据结构以及编辑图形的各种变换,图形的输入和输出等操作。API通常是用诸如C、PASCAL、FORTRAN等高级编程语言编写的子程序包。语言连接(Language Binding)是一个十分有用的接口,它使得用单一语言编写的API子程序包能被其他语言所调用。CGI(Computer Graphics Interface)是设备相关图形服务与设备无关图形操作之间的接口,它提供一系列与标准设备无关的图形操作命令。CGI通常直接制作在图形卡上,它的实现一般是与设备相关的。CGM(Computer Graphics Metafile)定义了一个标准的图形元文件(Metafile)格式,用CGM格式存储的图形数据可以在不同的图形系统之间进行交换。基于图2.7所示的标准化应用图形系统的层次结构,CAD应用系统开发人员就可以在对系统环境不甚了解的情况下高效地开发应用系统,同时也便于人们移植已经开发的应用系统,甚至API系统也可以进行移植。同样,只要图形硬件的驱动程序是标准的,CGI系统也可以进行移植。

2.图形系统标准

图形系统标准化一直是计算机图形学的重要研究课题。由于图形是一种范围很广而又很复杂的数据,因而对它的描述和处理也是复杂的。图形系统的作用是简化应用程序的设计。由于图形系统较难独立于I/O设备、主机、工作语言和应用领域,因此图形系统研制成本高、可移植性差成为一个严重问题。为使图形系统可移植,必须解决以下几个问题:

(1)独立于设备。交互式图形系统中有多种输入、输出设备,作为标准的通用图形系统,在应用程序设计这一级应具有对图形设备的相对无关性。

(2)独立于机器。图形系统应能在不同类型的计算机主机上运行。

(3)独立于语言。程序员在编写应用程序来表达算法和数据结构时,通常采用高级语言,通用图形系统应是具有图形功能的子程序组,以便不同的高级语言调用。

(4)独立于不同的应用领域。图形系统的应用范围十分宽广,若所开发的系统只适用于某一领域,在其他场合下使用就要作很大的修改,则会付出巨大的代价,为此要求通用图形系统标准应独立于不同的应用领域,即提供一个不同层次的图形功能组。

实现绝对的程序可移植性(使一个图形系统不做任何修改便可在任意设备上运行)是很困难的,但只作少量修改即可运行是能够做到的。标准化的图形系统为解决上述几个问题打下了良好的基础。国际上已从20世纪70年代中期开始着手图形系统的标准化工作。制定图形系统标准的目的在于以下几个方面:

(1)解决图形系统的可移植性问题,使涉及图形的应用程序易于在不同的系统环境间移植,便于图形数据的变换和传送,降低图形软件研制的成本,缩短研制周期。

(2)有助于应用程序员理解和使用图形学方法,给用户带来极大的方便。

(3)为厂家设计制造智能工作站提供指南,使其可依据此标准决定将哪些图形功能组合到智能工作站中,可以避免软件开发工作者的重复劳动。

图形标准化工作的主要收获是确定了为进行图形标准化而必须遵循的若干准则,并在图形学的各个领域(如图形应用程序的用户接口、图形数据的传输、图形设备接口等)进行了标准化的研究。从目前来看,计算机图形标准化主要包括以下几个方面的内容:

(1)应用程序员接口API标准化。ISO提供了三个标准,它们是GKS、GKS 3D和PHIGS。

(2)语言连接规范,诸如FORTRAN、C、Ada、PASCAL与GKS、GKS 3D、PHIGS的连接标准。

(3)计算机图形接口的标准化,包括CGI、CGI-3D。

(4)图形数据交换标准。在这方面引入了元文件的概念,定义了CGM、CGM-3D标准。

2.4.3 图形变换与处理

图形变换是计算机图形学的基础内容之一,指将图形的几何信息经过几何变换后产生新的图形。例如,将图形投影到计算机上,通常人们希望能够改变图形的比例,以便更清晰地看到某些细节;也许需要将图形旋转一定角度,得到对象的更佳视图;或者需要将一个图形平移到另一个位置,以便在不同环境中显示。对于动态装配体而言,在每一次运动中需要不同的平移和转动。通过图形变换也可由简单图形生成复杂图形,可用二维图形表示三维形体。图形变换既可以看作是图形不动而坐标系变动,变动后该图形在新的坐标系下具有新的坐标值;也可以看作是坐标系不动而图形变动,变动后的图形在坐标系中的坐标值发生变化。而这两种情况的本质是一样的,两种变换矩阵互为逆矩阵。本节所讨论的几何变换属于后一种情况。

对于线框图形的变换,通常是以点变换为基础,把图形的一系列顶点作几何变换后,连接新的顶点序列即可产生新的变换后的图形。连接这些点时,必须保持原来的拓扑关系。对于用参数方程描述的图形,可以通过参数方程几何变换,实现对图形的变换。

1.变换矩阵

一个对象或几何体可以用位于若干平面上的一系列点来表示。设矩阵Cold表示一组数据,现在定义一个操作数T,使其与矩阵Cold相乘而得到一个新矩阵Cnew,即

式中,T称为变换矩阵。该矩阵可以是绕一点或轴的旋转、移动至指定的目的地、缩放、投影,或者是这些变换的组合。变换的基本原则是矩阵相乘,但是只有当第一个矩阵的列数与第二个矩阵的行数相等时,这两个矩阵才能相乘。

2.齐次坐标

在图形学中,为实现图形变换通常采用齐次坐标系来表示坐标值,这样可方便地用变换矩阵实现对图形的变换。所谓齐次坐标表示法,就是由n+1维矢量表示一个n维空间的点,即n维空间的一个点通常采用位置矢量的形式表示为PP1P2Pn),它唯一地对应了n维空间的一个点。此时点P的齐次坐标表示法为PhP1hP2hPnh),其中h≠0。这时h的取值不同,一个n维空间位置的点在n+1维齐次空间内将对应无穷多个位置矢量。从n维空间映射到n+1维空间是一对多的变换。假设二维图形变换前点的坐标为(x, y,1),变换后为(x*, y*,1);三维图形变换前点的坐标为(x, y, z,1),变换后为(x*, y*, z*,1)。

在图形学中,如(12,8,4),(6,4,2),(3,2,1)均表示(3,2)这一点的齐次坐标。当取h=1时,空间位置矢量(P1P2Pn1)称为齐次坐标的规格化形式。例如,对二维空间直角坐标系内点的位置矢量(x y)用三维齐次空间直角坐标系内对应点的位置矢量(x y 1)表示。在图形变换中,一般都选取这种齐次坐标的规格化形式,使正常坐标和齐次坐标表示的点一一对应,其几何意义是将二维平面上的点(x, y)移到三维齐次空间z=1的平面上。从图2.8可以看出规格化三维齐次坐标系的几何意义。

图2.8 规格化三维齐次坐标系的几何意义

在图形变换中引入齐次坐标表示的好处如下:

第一,使各种变换具有统一的变换矩阵格式,并可以将这些变换结合在一起进行组合变换,同时也便于计算。例如,二维、三维的变换矩阵分别为

第二,齐次坐标可以表示无穷远点。例如在n+1维中,h=0的齐次坐标实际上表示了一个n维的无穷远点。对二维的齐次坐标(a, b, h),当h→0时,表示直线ax+by=0上的连续点(x, y)逐渐趋近于无穷远点。在三维情况下,利用齐次坐标可以表示视点在世界坐标系原点时的投影变换,其几何意义会更加清晰。

3.坐标系

从定义零件的几何形状到图形设备生成相应图形,一般都需要建立相应的坐标系来描述图形,并通过坐标变换来实现图形的表达(图2.9)。按形体结构特点建立的坐标系统称为世界坐标,多用右手直角坐标系。图形设备、绘图机、显示器等有自己相对独立的坐标系,用来绘制或显示图形,通常使用左手直角坐标系。坐标轴的单位与图形设备本身有关,例如,图形显示器使用光栅单位,绘图机使用长度单位。在三维形体透视图的生成过程中,还需要使用视点坐标系,它也是一个左手直角坐标系,坐标原点位于视点位置,该坐标的一个坐标方向与视线方向一致。

图2.9 常见的三种坐标系

4.二维图形变换

二维图形几何变换矩阵可用下式表示:

其中,对图形产生缩放、旋转、对称、错切等变换;[c f]对图形进行平移变换;对图形进行投影变换:x轴在l/g处产生一个灭点,y轴在l/h处产生一个灭点;[i]对整个图形作伸缩变换。

常用的二维图形变换矩阵见表2.1。复杂的二维图形变换可以由表中矩阵乘积组合而成,变换的结果与组合的顺序有关。

表2.1 典型的二维图形变换

5.三维图形变换

三维图形几何变换矩阵可用式(2-4)表示:

其中,产生比例、旋转、错切变换;[a41a42a43]产生平移变换;产生投影变换;[a44]产生整体比例变换。

常用的几种三维图形变换矩阵列于表2.2,其中省略了变换的示意图,可参见二维图形变换。在三维图形变换中也列出了三维形体的投影变换矩阵。所谓投影变换,就是把三维物体变为二维图形的过程。

表2.2 典型的三维图形变换