1、1第二章 计算机图形标准化和窗口系统一、 制定图形系统标准的目的、历史目的:提高图形软件、应用软件、相关开发人员在计算机之间和图形设备间的可移植性。发展历程:1974 美国国家标准化局(ANSI):“与机器无关的图形技术”图形标准化和有关标准的规则;美国计算机协会(ACM):成立图形标准化委员会核心图形系统(CGS,1977) ;第二版(1979) ;二十年来:出现 GKS,GKS-3D,PHIGS,CGM,CGI,IGES,STEP.二、 图形系统标准的分类(1)面向图形设备的接口标准:计算机图形元文件(CGM):CRT, Mouse, ; 计算机图形接口(CGI):设备驱动程序;(2)面向
2、应用软件的标准:程序员层次交互式图形系统(PHIGS),GL (图形程序包); (三维)图形核心系统(3D-)GKS(3)面向图形应用系统中工程和产品数据模型及其文件格式:基本图形转换规范(IGES) 产品数据转换规范(STEP)三、 IGES、STEP、GKS、GKS-3D、PHIGS、GL、CGI、CGM 的目的、作用计算机图形接口(CGI)目的:提供控制图形硬件的一种与设备无关的方法:(1)使有经验的用户最大限度的直接控制图形设备;(2)也可看作图形设备驱动程序的一种标准;(3)在用户程序和虚拟设备间,以一种独立于设备的方式提供图形信息的描述和通信。计算机图形元文件(CGM)定义:与设备
3、无关的语义、词法定义的图形文件格式。CGM 面向系统和系统开发者,和 CGI 配套提供。图形核心系统(GKS)功能:提供应用程序和图形输入输出设备间的功能接口;与语言无关的图形核心系统;GKS 提供了一个称为元文件的顺序文件接口;应用程序的所有图形资源由 GKS 控制(通过 GKS 元文件-GKSM) ;GKSM 的作用:(1)图形信息存档;系统传送图形信息;(2)在 GKS 应用程序间传送图形信息;(3)与图形信息相关的非图形信息的存储和复用。程序员层次交互式图形系统(PHIGS)一个高度动态化和交互式图形系统。与 GKS-3D 比较:(1)数据结构:拓扑结构不同GKS-3D:单层、平面的图
4、形数据结构; PHIGS:在造型空间中定义数据(2)可修改性:GKS-3D:内容不可修改,但影响图段整体特征的某些属性:可见性、可检测性等;PHIGS:任何结构、结构中的任何一部分元素在任何时候都可以修改;(3)属性的存储:GKS-3D:图素属性和图素一起存入图形数据结构中,入修改某个图素的属性,必须生成新属性;PHIGS:修改容易;(4)输出流水线:GKS-3D:采用三种坐标; PHIGS:5 种坐标系;图形程序库(GL)UNIX 下运行,具有 C,Fortran,Pascal 三种语言联编形式。2按功能分类:基本图素:直线、多边形、三角形、曲线、曲面等以及读写象素操作坐标变换:旋转、平移、
5、比例变换、投影变换、剪裁等;设置属性和显示方式:线型选择、图案填充、字体等;I/O 处理:启动 I/O 设备,并对相应的事件队列进行处理;真实图形显示:消除隐藏线、面、光照处理和深度排队等;基本图形转换规范(IGES)作用:不同的 CAD/CAM 系统之间交换数据。文件格式是 ASCII 码:可改变复杂结构及其关系;便于各种 CAD/CAM 系统的处理;基本单元:实体分有三类:几何实体:点,直线段等;描述实体:尺寸标注、绘图说明;结构实体:组合项、图组、特性等;文件结构分五节:开始节;目录入口(DE);参数(DP)节;整体节;结束节;产品模型数据转换标准(STEP)覆盖产品整个生命周期强调建立
6、能存入数据库中的一个产品模型的完整表示。克服 IGES 中的问题和缺点:(1)不能精确地完整转换数据:CAD/CAM 系统间概念不一致;(2)不能转换属性信息;(3)层信息经常丢失;(4)两个零部件信息不能放在一个文件中;(5)产生的数据量过大;(6)数据转换过程中产生的错误难以确定:需要人工处理 IGES 文件四、 窗口系统的特点(1)定义简洁(2)界面清晰:应用界面、编程界面、窗口管理界面;(3)目标明确:提供各种界面的机制;(4)实现紧凑:采用两种类型:基于核心的窗口(Ms-Windows,把核心放置于 O.S) ;基于 C/S 模型的窗口(X-Windows) ;(5)功能齐全(X 协
7、议,XLIB,X 工具箱,字体标准格式) ;(6)使用方便(一致性的用户接口,与设备无关的图形接口)五、 常用的窗口系统Smalltalk;Macintosh;NeWS;X-Windows;Ms-windows六、 窗口系统的输入输出处理窗口系统的输入处理是用户控制窗口的基础;窗口系统输入的基础:对事件的产生、分发、接收和处理窗口系统的输出处理把显示屏幕分成不同的区域并加以管理;窗口的形状与排列;区域管理;流行的图形用户接口(GUI)Windows:一个 CPU,并发接口的运行管理的机制把输入事件以消息方式发送到对应的窗口函数;窗口函数对其中发生的每一种事件都提供了相应的处理方法,并对各窗口的输出进行统一管理。消息:一种数据对象表示系统中发生一个事件;由一个消息标识符(WM_CHAR)和附加参数(Wpara 和Ipara)组成;应用程序在消息循环中用 Get Message 从消息队列中依次取消息,通过 Dispatch Message 把他们发送给相应的窗口函数或对话框函数;