第三章图形标准
3.1 图形标准的分类
建立图形标准的目的是使图形与计算机硬件无关,实现程序的可移植和数据的可交换。
图形标准的分类:
应用程序接口
图形数据交换
3.2 应用程序接口标准
1)GKS(Graphics Kernel System)
1985年,第一个ISO国际计算机图形信息标准,图形核心系统(GKS),正式颁布。
GKS提供了在应用程序和图形输入输出设备之
间的功能接口,定义了一个独立于语言的图形核
心系统。
GKS是一个二维图形标准,使用GKS编制出来
的应用程序可方便地在具有GKS的不同图形系统
之间移植。
以后又开发出了三维图形核心系统(GKS-3D)。
2)PHIGS
(Programmer’s Hierarchical Interactive Graphics System)
PHIGS( Programmer's Hierarchical Interactive Graphics System )是ISO于1986年公布的计算机图形系统标准。
PHIGS是为具有高度动态性,交互性的三维图形应用而设计的图形软件工具库,其最主要的特点是能够在系统中高效率地描述应用模型,迅速修改图形模型的数据,并能绘制显示修改后的图形模型,它也是在程序与图形设备之间提供了一种功能接口。
3.3 图形数据交换标准
1)CGM (Computer Graphic Metafile)
1980年开始,美国国家标准委员会ANSI和国
际标准化组织ISO专门成立了标准化组着手计算机
图元文件(CGM)标准的制定,并于1987年正式成为ISO标准,
CGM提供了一个在虚拟设备接口上存贮与传输图形数据及控制信息的机制。
它具有广泛的适用性,大部分的二维图形软件都能够通过CGM进行信息存贮和交换。
CGM标准是由一套标准的与设备无关的定义图形的语法和词法元素组成。
Windows的图元文件(不同于CGM)
windows图元文件是用来表示矢量图形的二进制记录。
它主要用来通过剪贴板在程序之间传递图形数据,也可以存储在硬盘上(*.WMF—Windows Metafile ),它将一组图形命令形成一个矢量绘图文件:
hdcMeta = CreateMetaFile (NULL) //这里是内存
hBrush = CreateSolidBrush (RGB (0, 0, 255)) ;
Rectangle (hdcMeta, 0, 0, 100, 100) ; //画矩形
MoveToEx (hdcMeta, 0, 0, NULL) ;
LineTo (hdcMeta, 100, 100) ;
MoveToEx (hdcMeta, 0, 100, NULL) ;
LineTo (hdcMeta, 100, 0) ;
SelectObject (hdcMeta, hBrush) ;
Ellipse (hdcMeta, 20, 20, 80, 80) ; //包围盒中画椭圆
hmf = CloseMetaFile (hdcMeta) ;
以后可以使用hmf在指定矩形区域中绘图。
2) IGES (Initial Graphics Exchange Specification)
随着CAD/CAM技术的广泛应用,企业间、企业内部不同的职能部门间经常需要进行产品信息的交换,由于CAD/CAM系统的不同,直接影响到设计和制造部门和企业间的产品信息的交换和流动。
导致了产品数据交换标准的制订。
1980年,由美国国家标准局(NBS:National Bureau of Standards)主持成立了由波音公司和通用电气公司参加的技术委员会,制订了基本图形交换规范IGES,并于1981年正式成为美国的国家标准。
从1981年的IGES 1.0版本到现在的版本,IGES逐渐成熟,日益丰富,包括了实体模型和边界模型,覆盖了CAD/CAM数据交换的越来越多的应用领域。
作为较早颁布的标准,IGES被许多CAD/CAM系统接受,成为应用最广泛的数据交换标准。
3)DXF (Drawing Exchange Format )
DXF为AutoCAD系统的图形数据文件,DXF虽然不是标准,但由于AutoCAD系统的普遍应用,使得DXF成为事实上的数据交换标准。
DXF是具有专门格式的ASCII码文本文件,它易于被其它程序处理,主要用于实现高级语言编写的程序与AutoCAD系统的连接,或其它CAD系统与AutoCAD系统交换图形文件。
4)STEP(Standard for the Exchange of Product Model Data)
作为数据交换的国际标准IGES发表以后,成为应用最广泛的数据交换标准。
但在应用过程中,IGES缺点逐渐暴露出来,不能满足复杂的工业生产数据交换的要求。
1984年,IGES组织设置了一个研究计划,称为PDES(Product Data Exchange Specification)。
PDES计划的长期目标是为产品数据交换规范的建立开发一种方法论,并运用这套方法论开发一个新的产品数据交换标准,新标准要求能克服IGES中已经意识到的弱点,这些弱点包括文件过长,处理时间长,一些几何定义影响数值精度,交换的是数据而不是信息。
PDES计划与IGES相比的一个显著特点是着重于产品模型信息的交
换而不是象IGES那样仅传递一些几何和图形数据。
1983年国际标准化组织ISO开始制定产品模型数据交换标准。
STEP的制定主要基于PDES计划,1988年ISO把美国的PDES文本作为STEP标准的建议草案公布,随后PDES的制定工作并入STEP的制定中,PDES计划从PDES的制定转向STEP标准的应用,PDES也
因此改名为“应用STEP进行产品数据交换(Product Data Exchange using STEP)”。
由于PDES计划和STEP密切相关,习惯上常将两者合在一起为PDES/STEP。
STEP是一个关于产品数据计算机可理解的表示和交换的国际标准,目的是提供一种不依赖于具体系统的中性机制,能够描述产品整个生命周期中的产品数据。
产品生命周期包括产品的设计、制造、使用、维护、报废等。
产品在各过程产生的信息既多又复杂,而且分散在不同的部门和地方。
这就要求这些产品信息以计算机能理解的形式表示,而且在不同的计算机系统之间进行交换时保持一致和完整。
产品数据的表达和交换,构成了STEP标准。
2) OpenGL 的 API 结构
3) Windows环境下OpenGL有关库函数
①核心库(OpenGL),包含最基本的函数,其前缀是gl ;这部分函数用于
常规的、核心的图形处理。
②实用库(OpenGL utility library,GLU),包含的函数功能更高一些,如绘
制复杂的曲线曲面、高级坐标变换、多边形分割等,前缀为glu。
Glu函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。
③实用工具包(OpenGL Utility Toolkit),第三方开发的函数库,函数名前缀
为glut。
这些函数用于简单的窗口操作和消息处理,使用它可以不涉及具体的窗口系统。
④WGL函数,专门用于OpenGL和Windows窗口系统的联接,其前缀为wgl。
它使OpenGL和windows窗口系统紧密结合。
另外,还有五个Win32函数(ChoosePixelFormat,DescribePixelFormat,SetPixelFormat,GetPixelFormat,SwapBuffers)用来处理像素格式和双缓存,它们是对Win32系统的扩展,没有特定前缀。
4)用OpenGL显示一个简单的二维图形
参考工程gl_0_2d
这个程序稍加修改,可以用来完成后面的大部分作业。