03 chapter2-ptn.ppt
Download
Report
Transcript 03 chapter2-ptn.ppt
第二章
计算机图形标准化和窗口系统
© 2004 Dept. of Computer Science and Engineer
2020/4/24
图形系统标准
目的:提高图形软件、应用软件、相关开发人员在计算机之
间和图形设备间的可移植性。
发展历程:
-
1974 美国国家标准化局(ANSI):“与机器无关的图形技术”-》图
形标准化和有关标准的规则;
-
美国计算机协会(ACM):成立图形标准化委员会-》核心图形系统
(CGS,1977);第二版(1979);
-
二十年来:出现GKS,GKS-3D,PHIGS,CGM,CGI,IGES,STEP...
概念(两个层面):
-
图形系统及相关应用系统中各界面间进行数据传送和通信的接口标准-》
数据及文件格式标准;
-
供图形应用程序调用的子程序功能及其格式标准-》子程序界面标准。
© 2004 Dept. of Computer Science and Engineer
2020/4/24
2 / 34
图形系统标准
图形系统标准分类(3类):
-
-
-
面向图形设备的接口标准:
计算机图形元文件(CGM):CRT, Mouse,…
计算机图形接口(CGI):设备驱动程序;
面向应用软件的标准:
程序员层次交互式图形系统(PHIGS),GL (图形程序包)
(三维)图形核心系统(3D-)GKS
面向图形应用系统中工程和产品数据模型及其文件格式:
基本图形转换规范(IGES)
产品数据转换规范(STEP)
© 2004 Dept. of Computer Science and Engineer
2020/4/24
3 / 34
图形系统标准
图形(工程)
数据库
IGES,STEP
应用程序
GKS,GKS-3D,PHIGS,GL
图形程序包
CGI
设备驱
动程序
设备驱
动程序
设备驱
动程序
键盘
鼠标
屏幕
磁盘
CGM
图形系统中各界面的标准
© 2004 Dept. of Computer Science and Engineer
2020/4/24
4 / 34
主要内容:
计算机图形接口(CGI)
计算机图形元文件(CGM)
图形核心系统(GKS)
程序员层次交互式图形系统(PHIGS)
基本图形转换规范(IGES)
产品模型数据转换标准(STEP)
窗口系统
© 2004 Dept. of Computer Science and Engineer
2020/4/24
5 / 34
计算机图形接口(CGI)
(ISO DP 9636)
目的:提供控制图形硬件的一种与设备无关的方法:
-
使有经验的用户最大限度的直接控制图形设备;
-
也可看作图形设备驱动程序的一种标准。
-
在用户程序和虚拟设备间,以一种独立于设备的方式提供图形信息的描述
和通信;
由一系列的功能集合组成:
-
控制功能集:图形图像以及接口的图形与非图形部分的内部关系的管理;
虚拟设备管理:启动/终止用户与CGI虚拟设备的对话期,管理虚拟设备上的图形
坐标空间:两个坐标系:虚拟设备坐标系VDC,设备坐标系DC;裁剪功能;
出错控制:9类错误:出错检测、出错报告、出错处理;
系统控制:建立对受CGI数据流接口上精度影响的各种数据类型:颜色、整型...
询问功能:提供各种描述表信息存取的手段:如设备表示、输出设备等描述表;
© 2004 Dept. of Computer Science and Engineer
2020/4/24
6 / 34
计算机图形接口(CGI)
-
(ISO DP 9636)
输出功能集:涉及图元、属性、对象的构成以及相关的控制和询问;
图元功能:用以描述CGI中图形的构成;
属性功能:设置状态表中的值,确定图元的可视性等性质;
通用属性和输出控制:规定图元的操作方式、图形设备的属性设置、图形对象的
定义;
检索功能:返回与正文对象定位有关的信息;
输出询问:返回输出及属性描述表和状态表有关的信息;
特点(4个):
- 复合对象的概念:几个图元组成的复合体,与图元属同一级;
- 颜色处理:提供直接和索引方式两种颜色选择机制;
- 裁剪处理:提供三种裁剪形式:轨迹裁剪、形状裁剪、先轨迹后形状裁剪;
- 扩展图元:增加了不连接的直线段、圆弧、椭圆弧、区域正文;支持多字符
集多边形、椭圆弧区域填充图案等;
© 2004 Dept. of Computer Science and Engineer
2020/4/24
7 / 34
计算机图形接口(CGI)
-
(ISO DP 9636)
图段功能集:
定义图形对象如何组合到图段中,并用唯一的图段标志符标识;
提供产生、修改和操纵图段的功能;
包括:
- 图段操纵:图段的产生、关闭、删除、重命名、复制等;
- 图段属性:设置与修改;
- 图段询问:获取与图段描述表和状态表相关信息;
另:复制图段时,提供“继承过滤”、 “剪裁继承”等功能-》
控制复制图段的属性和裁剪区域;
© 2004 Dept. of Computer Science and Engineer
2020/4/24
8 / 34
计算机图形接口(CGI)
-
(ISO DP 9636)
输入和应答功能集:
将逻辑输入设备分为8类 :
- 定位、笔画、取值、选择、拾取、字符串、光栅、其它输入设备(声
音输入等);
-
光栅功能集:提供产生、检索、修改和显示象素数据功能;
光栅控制:
- 可显示位图:
- 不可显示位图:
全深度位图:与显示器上每个象素用多少位来表示相匹配;
映象位图:位图的每个象素只有一位;
光栅操作:象素阵列数据的检索和显示,各种位图运算、位图区
域的移动、联合、复制等操作;
光栅属性:设置源与目的位图之间进行象素操作的绘图方式和填
充位图区域的功能;
© 2004 Dept. of Computer Science and Engineer
2020/4/24
9 / 34
主要内容:
计算机图形接口(CGI)
计算机图形元文件(CGM)
图形核心系统(GKS)
程序员层次交互式图形系统(PHIGS)
基本图形转换规范(IGES)
产品模型数据转换标准(STEP)
窗口系统
© 2004 Dept. of Computer Science and Engineer
2020/4/24
10 / 34
计算机图形元文件(CGM) (ISO IS8632)
定义:与设备无关的语义、词法定义的图形文件格式。
组成:
-
-
功能描述:以抽象的词法描述相应的文件格式:元素标志符、语义的说
明、以及参数描述;
描述词法三种形式的编码:字符、二进制数、正文编码;
图形元文件:规定生成、存储、传送图形信息的格式;
-
-
两种图形生成元文件:图形生成元文件(CGM)、图段生成元文件(GKS
元文件:GKSM);
关键属性:通用性。
图形元文件的解释:
-
生成CGM元文件的两种方式:图2.2.2;
CGM解释器的三种方式:图2.2.3;
CGM面向系统和系统开发者,和CGI配套提供。
© 2004 Dept. of Computer Science and Engineer
2020/4/24
11 / 34
主要内容:
计算机图形接口(CGI)
计算机图形元文件(CGM)
图形核心系统(GKS)
程序员层次交互式图形系统(PHIGS)
基本图形转换规范(IGES)
产品模型数据转换标准(STEP)
窗口系统
© 2004 Dept. of Computer Science and Engineer
2020/4/24
12 / 34
图形核心系统(GKS)
功能:提供应用程序和图形输入输出设备间的功能接口;
与语言无关的图形核心系统;
GKS提供了一个称为元文件的顺序文件接口;
应用程序的所有图形资源由GKS控制(通过GKS元文件GKSM);
GKSM的作用:
-
图形信息存档;系统传送图形信息;
在GKS应用程序间传送图形信息;
与图形信息相关的非图形信息的存储和复用。
© 2004 Dept. of Computer Science and Engineer
2020/4/24
13 / 34
图形核心系统(GKS)
GKS在应用中的地位:每层可以调用下层功能;
GKS的体系结构:所有图形资源由GKS控制,应用程序
(DDPi)不能绕过GKS直接使用图形资源;
© 2004 Dept. of Computer Science and Engineer
2020/4/24
14 / 34
主要内容:
计算机图形接口(CGI)
计算机图形元文件(CGM)
图形核心系统(GKS)
程序员层次交互式图形系统(PHIGS)
基本图形转换规范(IGES)
产品模型数据转换标准(STEP)
窗口系统
© 2004 Dept. of Computer Science and Engineer
2020/4/24
15 / 34
程序员层次交互式图形系统(PHIGS) ISO IS9592
ISO 1986年公布的计算机图形系统标准;
三层含义:
-
向应用程序员提供的控制图形设备的图形系统接口;
图形数据按层次结构组织;
提供动态修改和绘制显示图形数据的手段。
一个高度动态化和交互式图形系统。
特点:
-
在系统中高效地描述应用模型;
迅速修改图形模型的数据;
显示修改后的图形模型;
在应用程序和图形设备之间提供了一个功能接口;
图形数据组织上,建立独立于工作站的中心存储区与图形档案管理文件
图形操作上,建立适应网状的图形结构模式的各种操作;
象素设置上,既考虑二维与三维的结合,也满足矢量和光栅图形设备的
特点;
© 2004 Dept. of Computer Science and Engineer
2020/4/24
16 / 34
程序员层次交互式图形系统(PHIGS) ISO IS9592
模块化功能结构
328个用户功能子程序,
按内容由控制、输出图
元等;
模块相对独立:模块调
用通过公共数据结构与
其它模块间接连接;
结构清晰:没有重复的
程序功能;
© 2004 Dept. of Computer Science and Engineer
2020/4/24
17 / 34
程序员层次交互式图形系统(PHIGS) ISO IS9592
动态的结构、元素管理
高变化度动态化和
交互式的图形系统;
现实问题数据量变
化大-》系统状态
变化难以预测-》
静态数据结构难以
满足要求-》利用
UNIX操作系统动态
存储管理功能-》
将变化大的数据、
状态以动态链表的
形式存储;
© 2004 Dept. of Computer Science and Engineer
2020/4/24
18 / 34
程序员层次交互式图形系统(PHIGS) ISO IS9592
与GKS-3D比较:
-
1)数据结构:拓扑结构不同
GKS-3D:单层、平面的图形数据结构;
PHIGS:在造型空间中定义数据,如图2.4.5
-
2)可修改性:
GKS-3D:内容不可修改,但影响图段整体特征的某些属性:可见性、可检测
性等;
PHIGS:任何结构、结构中的任何一部分元素在任何时候都可以修改;
-
3)属性的存储:
GKS-3D:图素属性和图素一起存入图形数据结构中,入修改某个图素的属性,
必须生成新属性;
PHIGS:修改容易;
-
4)输出流水线:
GKS-3D:采用三种坐标;
PHIGS:5种坐标系;
© 2004 Dept. of Computer Science and Engineer
2020/4/24
19 / 34
GL
工作站上,工业标准图形程序库,
UNIX下运行,具有C,Fortran,Pascal三种语言联编形式。
OpenGL—微机,
按功能分类:
-
基本图素:直线、多边形、三角形、曲线、曲面等以及读写象素操作
坐标变换:旋转、平移、比例变换、投影变换、剪裁等;
设置属性和显示方式:线型选择、图案填充、字体等;
I/O 处理:启动I/O设备,并对相应的事件队列进行处理;
真实图形显示:消除隐藏线、面、光照处理和深度排队等;
© 2004 Dept. of Computer Science and Engineer
2020/4/24
20 / 34
主要内容:
计算机图形接口(CGI)
计算机图形元文件(CGM)
图形核心系统(GKS)
程序员层次交互式图形系统(PHIGS)
基本图形转换规范(IGES)
产品模型数据转换标准(STEP)
窗口系统
© 2004 Dept. of Computer Science and Engineer
2020/4/24
21 / 34
基本图形转换规范(IGES) ISO IS9592
Initial Graphics Exchange Specification
作用:不同的CAD/CAM系统之间交换数据。
文件格式是ASCII码:可改变复杂结构及其关系;便于各种CAD/CAM系
统的处理;
基本单元:实体,分有三类:
-
几何实体:点,直线段等;
描述实体:尺寸标注、绘图说明;
结构实体:组合项、图组、特性等;
文件结构分五节:如图:
-
-
开始节;
目录入口(DE);
参数(DP)节;
整体节;
结束节;
© 2004 Dept. of Computer Science and Engineer
2020/4/24
22 / 34
主要内容:
计算机图形接口(CGI)
计算机图形元文件(CGM)
图形核心系统(GKS)
程序员层次交互式图形系统(PHIGS)
基本图形转换规范(IGES)
产品模型数据转换标准(STEP)
窗口系统
© 2004 Dept. of Computer Science and Engineer
2020/4/24
23 / 34
产品模型数据转换标准(STEP)
Standard for the Exchange of Product model Data.
覆盖产品整个生命周期
强调建立能存入数据库中的一个产品模型的完整表示。
克服IGES中的问题和缺点:
-
-
不能精确地完整转换数据:CAD/CAM系统间概念不一致;
不能转换属性信息;
层信息经常丢失;
两个零部件信息不能放在一个文件中;
产生的数据量过大;
数据转换过程中产生的错误难以确定:需要人工处理IGES文件
© 2004 Dept. of Computer Science and Engineer
2020/4/24
24 / 34
主要内容:
计算机图形接口(CGI)
计算机图形元文件(CGM)
图形核心系统(GKS)
程序员层次交互式图形系统(PHIGS)
基本图形转换规范(IGES)
产品模型数据转换标准(STEP)
窗口系统
© 2004 Dept. of Computer Science and Engineer
2020/4/24
25 / 34
窗口系统(1)
窗口系统的特点
定义简洁
- 界面清晰 :应用界面、编程界面、窗口管理界面;
- 目标明确:提供各种界面的机制;
- 实现紧凑:采用两种类型:
基于核心的窗口(Ms-Windows,把核心放置于O.S);
基于C/S模型的窗口(X-Windows);
- 功能齐全(X协议,XLIB,X工具箱,字体标准格式);
- 使用方便(一致性的用户接口,与设备无关的图形接口);
-
© 2004 Dept. of Computer Science and Engineer
2020/4/24
26 / 34
窗口系统(2)
几种常见的窗口系统
-
Smalltalk
Macintosh
NeWS
X-Windows
Ms-windows
窗口系统的输入处理
是用户控制窗口的基础;
- 窗口系统输入的基础:对事件的产生、分发、接收和处理;
-
© 2004 Dept. of Computer Science and Engineer
2020/4/24
27 / 34
窗口系统(3)
窗口系统的输入处理:输入和事件
-
-
-
通常有多个输入设备,并有多个应用程序同时运行;
具备管理多个输入设备以及把他们所产生的事件分发到各个应用程序应用
程序 窗口管理系统输入设备;
事件(Event):
窗口系统中的输入;
Windows中,用户或系统中所发生的任何活动被当作事件来处理,例:
按下Mouse,则产生一 Mouse 事件;
对于所发生的每个事件,Window将其转换成消息的形式放在一个称为消
息队列的内存中,然后由Window的消息发送程序选择合适的对象,将消
息发送到要接受消息的对象上;
事件的时标和队列
时标:时间邮戳;
事件队列:若某一时刻,同时产生多个事件,必须有一个机制能把这些
同时产生的事件管理起来,在窗口系统中这些机制就是事件队列;
© 2004 Dept. of Computer Science and Engineer
2020/4/24
28 / 34
窗口系统(4)
窗口系统中输入的主要组成:
-
-
-
生成和分发;
生成事件:把物理设备产生的输入打上一些规定的标志,送入事件队列以
供客户使用;
工作流程:按照事件产生的时序把他门送入队列,窗口系统再依次向应用
程序发送;
事件分发
在应用程序和事件队列中加入一个转向开关,开关决定分发的对象
换向开关的换向策略 :位置决定法(根据定位器当前的位置 来确定当
前窗口);收听法(取决于定位器的当前位置+
定位键指定确认);
策略图:P98
事件处理
为每个窗口建立事件选择集
影射所有窗口
进入事件读取循环:从事件队列中读取事件并做相应的处理
© 2004 Dept. of Computer Science and Engineer
2020/4/24
29 / 34
窗口系统(5)
窗口系统的输出处理:
-
-
-
把显示屏幕分成不同的区域并加以管理;
窗口的形状与排列:
通常的形状:矩形;
对屏幕的划分方法:瓦片形、重叠形、层次形;
排列:窗口系统维护一个优先级队列改变窗口在队列中的位置则改变了
窗口的优先级;
区域管理:
利用窗口表记录每个窗口在屏幕的位置;
一个记录中包含:窗口标识符;应用程序标识号;窗口间的关系;
单位:像素;
流行的图形用户接口(GUI) :
Open Look;Motif;Windows
© 2004 Dept. of Computer Science and Engineer
2020/4/24
30 / 34
窗口系统(6)
GUI的特点:
-
-
增强了软件系统的数据输入;
对I/O对象的表示,从按名或按序号指定,扩展为用符号表示;
图形方式下的I/O密切相关;
具有数据驱动能力;
具有潜在的并行性;
用户界面的复杂度和灵活性可大大增强;
Ms-Windows的组成:
-
应用程序接口(API)
软件开发工具包(SDK)
运行时刻系统(RUN_TIME)
© 2004 Dept. of Computer Science and Engineer
2020/4/24
31 / 34
窗口系统(7)
Windows:一个CPU,并发接口的运行管理的机制
-
-
把输入事件以消息方式发送到对应的窗口函数;
窗口函数对其中发生的每一种事件都提供了相应的处理方法,并对各
窗口的输出进行统一管理;
消息:
一种数据对象表示系统中发生一个事件;
由一个消息标识符(WM_CHAR)和附加参数(Wpara和Ipara)组成;
应用程序在消息循环中用Get Message从消息队列中依次取消息,通
过Dispatch Message把他们发送给相应的窗口函数或对话框函数;
© 2004 Dept. of Computer Science and Engineer
2020/4/24
32 / 34
窗口系统(8)
例如: WinMain()
MSG msg;
….
While (Get Message(&msg,NULL,0,0))
// 把键盘输入的消息
{ TranslateMessage(&msg);
=》对应的字符消息
DispatchMessage(&msg);}
把输入消息发送给相应的窗口函数或对话框函数
Ms-Windows系统的控制结构:
-
-
WinMain 函数
若干回调函数:应用程序中定义的,运行时直接被Windows调用的函数;
若干实现应用语义的子程序(应用子程序);
对话框资源:基本对话资源 (*.RC) 、复合资源
Windows 编程: P122 例3
© 2004 Dept. of Computer Science and Engineer
2020/4/24
33 / 34
谢谢!
© 2004 Dept. of Computer Science and Engineer
2020/4/24