1、计算机图形学第二章计算机图形的标准化和窗口系统主讲人:刘铭E-MAIL:1.2.4 图形软件标准和窗口系统 随着计算机图形学应用领域的不断扩大,各种图形软件日益增多,图形设备品种繁多,如果没有统一的标准,对应用软件的开发和移植等工作将造成很多的困难。为了提高图形软件的可移植性、与图形硬件设备的无关性,国际标准化组织(ISO)针对图形系统的不同层次的接口,制定了一系列的国际标准,如图2.4所示,从下往上分别包括:2024/3/18 周一2.n(1计 算 机 图 形 元 文 件(Computer Graphics Metafile,简称CGM);n(2计 算 机 图 形 接 口(Computer
2、Graphics Interface,简称CGI);n(3)图形软件包,如GKS,GKS-3D,PHIGS,GL等;n(4)图形应用接口标准,如IGES和STEP;2024/3/18 周一3.2024/3/18 周一4.n其中,CGM和CGI是面向设备的接口标准。GKS,GKS-3D,PHIGS,GL是面向图形应用软件的标准。IGES和STEP是面向图形应用系统中工程和产品数据模型及其文件交换各式的标准。n另外,窗口系统是近年来应用最为广泛的图形化的用户接口,其典型代表有工作站上的X-Windows,Motif和OpenLook,个人计算机上的Microsoft Windows系列产品,这些窗
3、口系统已成为用户接口事实上的工业标准。n理解和学习这些图形软件标准,有助于规范图形系统,涉及符合国际标准的图形软件,以便于图形应用软件的兼容性以及与设备无关性,也便于应用现有的图形软件产品。2024/3/18 周一5.n241 计算机图形元文件(CGM)nCGM是ANSI 1986年公布的标准,1987年成为ISO标准。它是一套与设备无关的图形文件格式的国际标准,它定义了图形文件的语义和词法,以便于不同的图形设备都可以接受这种图形格式。nCGM规定了生成、存储、传送图形信息的格式。设计CGM的主要目的是:(1)提供图形存储的数据格式;(2)假脱机绘图的图形协议;(3)为设备接口标准化创造条件;
4、(4)便于检查图形中的错误,保证图形质量;(5)提供了把不同图形系统中所产生的图形集成到一起的一种手段。nCGM是一个静态的图形文件格式,即它不能产生所定义图形的动态效果。通用性是CGM的关键属性,广泛适用于各种设备及应用系统。2024/3/18 周一6.nCGM标准主要有两部分组成,其一是功能规格说明,以抽象的词法描述了相应的文件格式,包括元素标志符、含义的定义以及参数描述。其二是描述了CGM的三种标准编码形式,即字符、二进制数和正文编码。nCGM的结构如图所示2.4-2所示。每个图形文件中有一个元文件描述体和若干个逻辑上独立的图形描述顺序组成。每个图形描述体由一个图形描述单元和一个图形数据
5、单元构成。2024/3/18 周一7.2024/3/18 周一8.242 计算机图形接口(CGI)CGI(Computer Graphics Interface)是ISO TC97提出的图形设备接口标准,其目的是提供控制图形硬件的一种与设备无关的方法,使得有经验的用户最大限度地、灵活地控制图形设备。CGI是图形设备驱动程序的一种标准。通过CGI。可以练结合驱动各种不同的图形设备,真正实现与设备的无关性。CGI是在用户应用程序和虚拟设备之间以一种独立设备的方式提供图形信息的描述和通信,它所提供的功能集包括:(1)控制功能集:包括虚拟设备、坐标空间、出错控制、系统控制、询问功能五个方面的功能;(2
6、)输出功能集:设计图元、属性、对象的构成及有关的控制和询问;2024/3/18 周一9.(3)图段功能集:定义了图形对象如何组合到图段中,并用唯一的图段标识符标识,还提供了产生、修改和操纵图段的功能;(4)输入和应答功能集:按数据的类型将逻辑输入设备分成八类,即定位、笔划、取值、选择、拾取、字符串、光栅和其它输入设备。每个逻辑设备有四种输入方式,即请求、采样、事件和应答。在应答请求方式下,允许将该逻辑输入设备的当前值应答在相应的CGI虚拟设备上。(5)光栅功能集:提供了产生、检索、修改和显示像素数据的功能。2024/3/18 周一10.n243 图形软件包n图形软件包是应用程序和图形设备驱动程
7、序之间的接口,应用程序通过调用图形软件包中的图形函数,驱动相应的图形设备,绘出各式各样的图形。作为ISO标准的图形软件包有GKS,GKS-3D,PHIGS,GL等。n 1GKS和GKS-3DnGKS(Graphics Kernel System)提供了在应用程序和图形输入输出设备之间的功能接口,定义了一个独立于语言的图形核心系统。GKS是一个图形软件包,在具体使用时,必须嵌在宿主语言中使用,如C语言等。nGKS和具有图形处理功能的程序设计语言是有区别的,程序语言中的图形处理函数是该语言的一2024/3/18 周一11.部分,语法和语义与具体的语言有关,而GKS是独立于宿主语言之外相对独立的系统
8、,不同的宿主语言都可以调用GKS中的图形处理语句。GKS作为一个图形系统核心,其意义在于它提供的图形功能和各种特殊的图形设备是无关的。GKS中系统可调用的图形输出和输入设备称为图形工作站,它是一个抽象的物理设备。GKS共有六种工作站:输入、输出、输入输出、独立图段存储(WISS)、元文件输出(MO)、元文件输入(MI)工作站。GKS提供了一系列交互和非交互图形设备的全部图形处理功能,包括:控制功能、输出功能、输出属性、变换功能、图组功能、输入功能、询问功能、实用功能、元文件处理和出错处理。2024/3/18 周一12.GKS包括下列几个基本的图素,即点元素、线元素、字符元素和光栅元素。在GKS
9、中,图素能以图段方式组合,并以图段为单位进行图形输出,各图段由应用程序定义,GKS根据所指定的图段名进行识别与选择,而且还可以对图段进行变换、可见性、改名、监测及删除等一系列操作。GKS采用元文件在图形系统之间传送图形信息,其功能包括GKS元文件的生成、读入和解释等。GKS元文件结构及其读、写过程如图所示。2024/3/18 周一13.2024/3/18 周一14.GKS是一个二维图形的标准,它不适合三维图形的处理,为此,ISO/IEC制定了三维图形核心系统GKS-3D。GKS-3D是一个完全的三维系统,即所有的图段、图素数据都是三维格式,即使原来的GKS中的二维数据也要转换成三维的格式。GK
10、S-3D的功能包括三维输入、三维图素、三维几何属性、具有视图操作的三维变幻以及隐藏线、面的消除等。GKS-3D和GKS是完全兼容的,它们在功能上可以混合使用,但在GKS-3D处理GKS定义的功能之前,需要把GKS定义的内容转换成三维的格式,即GKS的功能只是在GKS-3D某个具体平面上的实现。2.PHIGS PHIGS(Programmers Hierarchical Interactive Graphics System,程序员层次交互图形系统)是2024/3/18 周一15.ISO1986年公布的计算机图形标准,它为应用程序员提供控制图形设备的子程序接口标 准。与GKS不同,PHIGS的图
11、形数据按照层次结构组织,使多层的应用模型能方便地利用PHIGS进行描述,而且PHIGS提供了动态修改和绘制显示图形数据的手段。PHIGS提供的功能包括以下三个方面的含义:(1)向应用程序员提供了控制图形设备的图形系统接口;(2)图形数据按层次结构组织,使多层次的应用模型能方便地应用PHIGS进行描述;(3)提供了动态修改和绘制显示图形数据的手段。PHIGS是为具有高度动态性、交互性的三维图形应用而设计的图形软件工具库,其最主要的特点是能够在系统中高效率地描述应用模型,迅速修改2024/3/18 周一16.图形模型的数据,并能绘制显示修改后的图形模型,它也是在应用程序和图形设备之间提供了一种功能
12、接口。PHIGS的标准功能可划分为九个程序模块来分别实现,各模块相对独立,一个模块仅通过系统的公共数据结构与其它模块间接连接。如图所示。2024/3/18 周一17.图2.4-4 PHIGS的程序模块结构2024/3/18 周一18.PHIGS和GKS-3D的功能类似,但存在以下几个方面的差别:(1)数据结构 GKS-3D提供了单层、平面的图形数据结构,其图段用来表示的是图像信息而不是图形的构造信息,图段数据经过坐标规格化变换后,不再是定义该图段的坐标空间的数据。而PHIGS的结构始终是在造型空间中定义的数据。(2)可修改性 GKS产生的图段,其内容不能修改,但影响图段整个特征的某些属性,如可
13、见性、高光、可检测性、图段的几何变换等则是可以修改的。而PHIGS中的任何结构,结构中的任何一部分元素则可以在任何时候进行修改。2024/3/18 周一19.(3)属性的存储 GKS把图素属性和图素在一起存入图形数据结构中,为了修改某图段中的一个图素属性,必须去除该图素的旧属性,重新生成一个新属性。在PHIGS中,只有当遍历一个结构并要显示该结构时,其中的图素才变成输出图素,此时,那些属性结构元素才连接到输出图素上,因此,图形数据的修改更容易。2024/3/18 周一20.(4)输出流水线 GKS-3D设置了三种不同的坐标系,首先在用户坐标系(WC)中定义图素,经规格化变换后到规格化设备坐标系
14、(NDC),这是与设备无关的二维直角坐标系,取值范围在0.0到1.0之间。然后,在NDC中经图段变换、规格化裁剪、视图变换及视图映像等操作后,转换到与设备有关的设备坐标系(DC)中进行输出。PHIGS则定义了五种坐标系,其输出流水线为:造型坐标系(MC),经局部、整体变换到用户坐标系(WC),经视图变换到观察坐标系(UVN),在经观察投影变换后到规格化的投影坐标系(NPC),最后经工作站映像到设备坐标系(DC)输出。2024/3/18 周一21.3GL GL(Graphics Library,图形库)是近年来在工作站上广泛应用的一个工业标准图形程序库,按其功能可划分为如下几类:(1)基本图素:
15、包括点、直线、多边形、三角形、矩形、圆和圆弧、字符、曲线和曲面等;(2)坐标变换:支持旋转、平移、比例变换以及窗口视图变换、投影变换和裁剪,同时支持用户定义的各种变换;(3)设置属性和显示方式:可定义选择线型、填充图案、字体和光标,可设置RGB和颜色表两种选色方式,以及明暗效果、双缓冲、各种位图等多种绘图方式;(4)输入/输出处理:用于启动输入输出设备,并对相应的事件队列进行处理;(5)真实图形的显示:消除隐藏线、面、光照处理和深度排队。2024/3/18 周一22.GL在UNIX操作系统下运行,具有C、Fortran、Pascal三种语言联编形式。在Windows环境中提供了类似的图形程序库
16、,即OpenGL。GL和GKS-3D、PHIGS三维图形标准相比具有以下特点:(1)图元丰富:除具有一般图元外,还具有B样条曲线、Bezier曲面和NURBS曲面等;(2)强大的颜色功能:GL具有RGB和颜色表索引两种方式,有Gourand和Phong光照模型,使表面显示的亮度与色彩变化柔和;(3)Z缓冲技术:Z缓冲技术是在每个像素上附加一个24位或48位的表示Z值的缓冲存储器,这对曲线曲面的消隐、亮度随深度变化的处理、提高图形处理效率都具有重要的作用;(4)光源:GL提供了充分的光源处理能力,使用户能得到非常生动的图像;(5)X窗口系统:GL既可以单独运行,也可以在X窗口环境下运行,进而可支
17、持网络上的用户。2024/3/18 周一23.244 基本图形转换规范(IGES)IGES(Initial Graphics Exchange Specification,基本图形转换规范)是为了解决数据在不同CAD/CAM系统间进行数据传送的问题,它定义一套表示CAD/CAM系统中常用的几何和非几何数据格式以及相应的文件结构。1982年,IGES成为ANSI标准,1988年以后又相继发布IGES 4.0、IGES5.0。IGES的作用是在不同的图形系统之间交换数据,其结构如图所示。2024/3/18 周一24.2024/3/18 周一25.IGES中的基本单位是实体,它分为三类。其一是几何实
18、体,如点、直线、圆弧、样条曲线、曲面等。其二是描述实体,如尺寸标注、绘图说明等。其三是结构实体,如组合项、图组、特性等。从目前国内外常用的CAD/CAM系统中的IGES来看,其中的实体基本上是IGES定义实体的子集。IGES的文件格式是由ASCII码、记录长度为80个字符的顺序文件组成。文件分成五个节,如图3.4.2所示。开始节存放用户可阅读的定义信息,整体节和结束节存放数据的原始信息和文件本身的信息,实体信息存放在目录入口(DE)和参数数据(PD)中,在DE和PD节中还存放实体的有关指针及相互关系。2024/3/18 周一26.2024/3/18 周一27.IGES的出错处理也是十分重要的,
19、因为在不同系统间转换数据会产生错误,如重字符、错字符,开发的转换器会对IGES文件产生不正确地解释等,这就要求IGES转换程序能报告并校正有关的错误。2024/3/18 周一28.245 产品模型数据转换标准(STEP)作为在不同CAD/CAM系统之间交换图形数据的IGES文件标准,虽然已在大多商品化的CAD/CAM系统中采用,但IGES在实践中还存在一些问题,如不能精确地完整转换数据、不能转换属性信息、层信息常丢失、产生的数据量太大等。为了克服IGES存在的问题,扩大转换CAD/CAM系统中几何、拓扑数据的范围,ISO/IEC JTC1的一个分技术委员会(SC4)开发了产品模型数据转换标准S
20、TEP(Standard for the Exchange of Product model data)。2024/3/18 周一29.STEP的产品模型数据是覆盖产品整个生命周期的应用而全面定义的产品所有数据元,从产品的概念设计、工程分析,到制造生产和产品文档的建立,是包括CAD/CAM整个过程全方位的信息,而不像IGES只是一种图形数据描述格式。在STEP中,产品模型信息分为三层结构,即应用层、逻辑层和物理层,它们之间的关系如图3.4.3所示。其中,应用层主要用来描述图形的形状模型、显示与绘图(即拓扑与几何)、形状特征和公差四个部分;逻辑层是将应用层中采用的各种数据模型集成为一个冗余最少、
21、无二义性的集成产品信息模型(IPIM,Integrated Product Information Model)。物理层主要是自由格式的顺序文件,物理文件用形式化的词法定义。2024/3/18 周一30.2024/3/18 周一31.STEP是为CAD/CAM系统提供中性产品数据的公共资源和应用模型,即各种CAD/CAM系统都可以承认的数据模型,STEP的基本组成包括:(1)描述方法标准;(2)实现方法标准;(3)一致性测试方法与工具标准;(4)信息模型标准;(5)应用协议。STEP标准内容丰富,是定义应用产品全局模型的工具。2024/3/18 周一32.246 窗口系统 从80年代中期以来,
22、不论是个人计算机、工作站,还是大、中型计算机,都配备了图形画的用户接口,即窗口系统,如工作站上的X-Windows、OpenLook和News,PC机上的MS-Windows。窗口系统起源于70年代中期,美国Xeror(施乐)公司开发出的Smalltalk语言,它是第一个提出面向对象的图形化程序设计语言。1984年Apple公司开发的Macintosh使窗口系统成为第一个广泛应用的窗口系统。目前,常用的窗口系统有PC机上的MS-Windows,UNIX操作系统下的X-Window,在Sun工作站上的News、SunView、OpenLook和Motif 等。2024/3/18 周一33.窗口系
23、统具有如下特点:定义简洁:他管理各种系统资源和输入输出设备;界面清晰:它提供各种应用界面、编程界面和窗口管理界面;目标明确:具体表现在窗口程序设计上,它提供生成各种窗口界面的机制,而不是具体策略;实现紧凑:窗口系统在实现时通常采用两种类型:一是基于核心的窗口系统,即把窗口系统的核心放在操作系统的内核中,如Ms-Windows,SunView等;另一种则是把窗口系统的核心作为操作系统的用户进程来对待,这是基于客户/服务器的窗口系统,如X-Window等。功能齐全:窗口系统提供了大量的日常应用及程序员的编程接口功能;使用方便:由于窗口系统采用一致性的用户接口,便于学习和操作,再加上各种图形符号(图
24、标)、鼠标等交互式设备的使用,大大方便了计算机的操作、使用与开发,使“所见即所得”成为可能。2024/3/18 周一34.常用的窗口系统简介:(1)News窗口系统 News是Sun Microsystem公司基于UNIX系统开发的窗口系统,它支持网络功能。目前,Sun工作站上采用的窗口服务器是X11/News,它既支持X-Windows又支持News窗口系统。News窗口系统的最大特点是该窗口系统中的成像模型是以PS语言(PostScript,页面描述语言)为基础,而不是采用像素操作。用PS描述的图像可以做到无级变换的字体放缩显示。(2)X-Window X窗口系统是由MIT开发出的一套窗口
25、系统,其目的是要建立一个图形化用户接口的工业标准,使软件可以在不同厂家生产的硬件上运行,而且让用户不必担心如何与系统交互。X窗口系统具有丰富的网络功能。在众多的窗口系统中,X窗口系统已经取得了无可争议的领先地位。2024/3/18 周一35.X窗口系统流行的版本是11版,即X11窗口系统,该版本已成为ANSI发布的标准,它有四部分组成:X协议:X窗口系统实际上由核心协议定义,整个协议描述客户与服务器进程通信的语法结构和语义。X库函数(XLIB):Xlib是X窗口系统的C语言程序接口,它是向应用程序员提供的低级编程界面。X工具箱(X Toolkit):X工具箱是在Xlib基础上开发的高级编程界面
26、,它向用户提供诸如菜单(Menu)、对话框(Dialog)、图符(Icon)等各种图形界面的编程手段。2024/3/18 周一36.X工具箱包括两部分:Widget集和Intrinsics函数集。前者是具有一定界面风格及外观的图形界面元素对象集,而后者是利用这些对象编程时的通用函数集,共有近270个函数。经常使用的X工具箱是XView。字体标准格式(BDF:Bitmap Distributed Format)这是X窗口系统所提供各种字体的标准位图映像的组成规定,由此可产生各种点阵字体。目前,X窗口系统图形用户接口主要有Motif和OpenLook两大流派。2024/3/18 周一37.(3)M
27、s-Windows 1986年美国Microsoft公司在PC个人计算机的DOS操作系统环境下开发了Windows窗口系统,于1990年正式发布了Windows 3.0版,1992年4月发布了Windows 3.1版,以后又相继发布了Windows 95、Windows 98、Windows 2000和Windows XP等版本,成为PC机上主流的窗口系统。在开发Windows应用程序时,Windows窗口系统提供了大量的函数,主要有三个主要的函数库组成:User函数库,它提供了窗口管理功能;Kernel函数库,它提供多任务、存储管理和资源管理等系统服务功能;GDI函数库,它提供图形设备接口。Windows函数库是特殊的动态连接库(DLL),只有当系统加载应用程序时,才把DLL和应用程序连接在一起,从而最大限度地减少每个应用程序的代码量。2024/3/18 周一38.
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100