GKS

科技工作者之家 2020-11-17

GKS(Graphical Kernel System)即图形核心系统,是一个为应用程序服务的基本的图形系统,它提供了一个应用程序可以调用的功能函数集合,供绘图编程使用,可以使用GKS编制应用图形软件。1985年8月被国际标准化组织确定为计算机图形标准。

概述GKS是一个为应用程序服务的基本的图形系统,它提供了一组用于计算机图形程序设计的功能函数,定义了6种图形输出元素和6种逻辑输入设备,引进了工作站的概念,设置了3种坐标系,可进行窗口和视口问的转换,允许存贮和动态地修改画面.由于GKS对具体设备是独立的,因此使用GKS编制的应用图形软件具有很好的可移植性.GKS定义了 一个独立于语言的图形系统的内核,为了和程序语言集成在一起,GKS将嵌入到一个服从于某个语言专有的惯例的语言依赖层中。1

自从GKS成为国际标准以来,许多国家实现了自己的GKS系统,并与CAD结合在 一起设计出面向应用的交互图形系统。在一些国家还成立了有关GKS的实现、测试的专门机构以推进研究与探讨工作。1

功能GKS的主要功能包括图形的输出功能、输入功能、控制功能、变换功能、组合功能(又称图段功能)、元文件功能,其辅助功能还包括询问功能和出错处理功能2。

输出功能GKS把众多的绘图功能归并成五种基本的绘图功能和一种扩充的绘图功能。五种基本绘图功能用来输出五种基本图形,它们是折线、乡点记号、正文、填充区和像元阵列。一种扩充的绘图功能称为广义绘图原语(GDP)。用它可以绘制圆、圆强、捅圆和洋条曲线等。每个GKS具体有哪些GDP依赖于工作站的特性,在标准中不作统一的规定。绘制上述图形的功能称为输出原语(又称图形原语),简称为图原。应用程序员用上述五种基本团原,必要时再加上广义绘图原语,可以画出各种各样的图形来。其中,折线用来绘制线划图形(如机械制图);多点记号用来标记一串不同的伍置,如一个离散的函数值或过程的采样值;正文用来在图上注字,原有国际标准只允许注西文,在国家标准中增加了汉字;填充区用来绘制用直线段包围起来的多边形,它可以分别用单一的颜色、阴影线、图案来填充其内部,或者只划一个边框,像元阵列用来显示一块矩形的图像。前两种图原比较适合于在绘图机一类线划图形设备上使用,后两种图原则适合于在光栅图形设备上使用。至于正文,它既适用于线划图形设备,又适合于光栅图形设备。尽管如此,通过适当的硬软件处理,它们均可在两类图形设备上使用。

单单这五种基本绘图功能加上一种广义绘图功能,还不能完全刻画出所有需要的绘图特性。例如,对于折线需要控制它所用的线型和颜色,对于正文需要控制其字符高度、所用字体乃至字符的走向。在GKS中,把这些和图原有关的外宏特性称为图原属性。它们可以用图原属性设置功能加以控制。按照图原属性是否和几何尺寸有关,GKS把它们分成几何属性和外表属性。由于外表属性在不同类型的图形设备上可以有不同的表现形式,允许应用程序员用与工作站(即图形设备)无关的方式来指定图原的外表或用依赖于工作站的方式来指定它们。在GKS中,前一种方式称为单独指定,后一种称为成束指定。

输入功能和绘图功能一样,GKS也把各种交互图形输入设备所具有的功能抽象成与设备无关的六种逻辑输入设备。它们是定位器、笔划器、定值器、选择器、拣取器和字符串设备.其中定位器用来输入单个位置信息;笔划器用来轴入一串位置信息;定值器用来输入一个实效值,它相当于一个旋钮;选择器用来选一个号码,它相当于按钮;拣取器用来指点画面上的图形实体或图原;字符串设备相当于键盘,可用来输入字符串。在GKS国家标准中规定,可以用字符串设备来输入汉字串。

每个逻辑输入设备可以在三种不同的方式下工作,称为操作方式。这三种方式是请求方式、采样方式和事件方式。逻辑输入设备在请求方式下工作时,要由应用程序先发出输入请求,程序挂起等持操作员的输入动作,如用鼠标器标定输入位置并击一镶通知系统.系统经处理后把这个位置信息传送给应用程序。这种方式类似于从普通终端上输入一申字符。采样方式适于从图形输入板上用跟踪方式输入一串位置,富避免了输入过程中不必要的”击健”、“等待”动作;事件方式有点类似于请求方式,但是操作员可以先于程序的请求进行输入操作,系统把这些输入倍息作为“事件”存入一个队列中。当应用程序带要输入时,可直接从队列中取走一个事件,避免了不必要的等待。

控制功能各种图形输入输出设备在GKS中统称为工作站。GKS的控制功能是指那些用来打开和关闭GKS、打开和关闭土作站以及其他对工作站的控制功能.在GKS中,对工作站的控制就是对图形设备的控制。主要的控制功能还包括启用和停用工作站,对工作站上圃面更新的控制。

GKS用启用工作站来启动图形输出原语向工作站的实际输出。可以同时启用几个工作站。输出原语同时向所有已启用(活动)的工作站输出图原。GKS还提供了—组功能来授制工作站上画面的更新。对于那些需要通过重画(或称再生)才能实现的操作(如删除画面上的某些内容),应用程序可以使GKS自动地重画(隐含再生),或者暂时禁止隐含再生,到适当的时候通过重画功能或更新工作站功能使其重画。提供这些功能可以使应用程序以及佳的方式来更改画面。

变换功能GKS使用了三种坐标系和三种变换,即世界坐标系(WC)、规格化设备坐标系(NDC)和设备坐标系(DC).应用程序用世界坐标系定义图原中的坐标。图原中的世界坐标通过规格化变换变成规格化设备坐标,再通过工作站变换变成设备坐标。上述两个变换均是从窗口到视口的变换,即只允许平移和缩放.第三种变换是图段变换,这是一个从NDC到NDC的任意二维坐标变换。

GKS允许定义多个规格化交换,以便在一个画面上可以同时显示几个不同比例和内容的图。由于GKS能自动地剪除在规格化变换视口外面的图形,就可容易地实现一屏多图,或称为多窗口。至于工作站变换则只有一个。它用来对整个画面进行放大和缩小。

图段功能在GKS中,图原可以组合到段图中,也可以在图段外产生。当图原产生时,若有一个图段是打开着的,该图原就自动地组合到该打开着的图段之内。只能同时打开一个图段.图段一旦关闭后,就不能重新打开,也不能增加或删除该图段内的图原。图段有一系列属性,包括图段变换、可见性、醒目性、图段优先级和可检测性。图段变换是一个任意的二维坐标变换。它用来对整个图段进行平移、缩故和旋转。

GKS的图段还用来实现拣取输入功能,即通过鼠标器来指点画面上的某些元素。GKS规定只能拣取图段内的图原。可检测性则进一步控制某个图段是否能被拣取。

图段的另一个用途是用于画面的重面。GKS只重画定义在图段内的全部图原。所有图段外的图原在雹画时自动消失。

为了进一步扩充图段功能,GKS还定义了一个独立于工作站的图段存储器(WISS)。它是一种特殊的工作站。凡是定义在们WISS工作站上的图段,可以通过复制图段到工作站的功能,或把图段联结到工作站的功能回到另一个实在的输出型工作站上。二者的区别在于后者是把图段作为一个整体画到工作站上,而前者则是一个一个地把图段中的图原复制到工作站上。还有一个插入图段功能,可把一个图段经过平移、缩放和旋转后输出到当时所有活动的工作站上。

元文件功能为了长期保存图形信息,GKS提供了一个称为元文件的元文件接口。GKS元文件(GKSM)可用于: 在系统之间传送图形信息;把图形信息从一个地方送到另一个地方;从一个GKS应用程序向另一个应用程序传送图形信息。

在GKS中,元文件作为两个特殊的工作站对待,即元文件输出工作姑MO和元文件赖入工作站MI。当应用程序需要写一个元文件时,只需打开一个MO工作站,并启用它。随后的图形输出原语就依次写入该元文件中。除此以外.还写人和工作站控制、工作站变换、工作站属性改变以及团段控制和操纵等功能相对应的元文件记录(称为项目)。这些写入的元文件记录可以由另—个程序,在另一个时刻,乃至在另一个系统上,通过打开一个MI型工作站进行读入。GKS提供了“从GKSM获得项目类型”、“从GKSM读入项目”和“解释项目”等功能,以便重现原来的图形。

地位图形核心系统GKS的功能已覆盖了狭义的计算机图形学——生成式计算机图形学的主要部分。同时它在图片分析和图片处理中也有用处。图形核心系统是关于图形程序设计工具的第一个国际标准。它不仅提供了有关图片生成、圆片表示、组合、变换和输入方面的功能,而且对计算机图形学产生了更为深远的影响。

GKS首次提出了一个计算机图形学方法论的构架,以便把多年来发展起来的各种计算机图形学的概念有机地联系起来。这个构架将成为统一的名词和概念的基础,便于大家构造计算机图形系统,使用计算机图形学工具,讨论计算机图形学方面的问题。它还有助于进行计算机图形学的方法、概念和应用方面的教学。2

接口为了便于应用程序用不同的高级程序语言来调用GKS的功能,GKS的功能描述是独立于任何高级语言的。另外,对一些主要的高级语言,设计了GKS的语言联编,以便应用程序通过于程序或过程调用来引用GKS的各种功能。这是通过语言依赖层来实现的。在语言依赖层和应用程序之间,有时还有一个面向某个应用领域的软件支撑层,称为面向应用的层。由于GKS要直接和各种图形设备打交道,GKS中负责这部分工作的程序称为设备驱动程序,又称为工作站驱动程序。当然这部分程序仍要通过操作系统中通用的驱动程序最终与设备发生关系。此外,GKS中还有一部分负责元文件生成和解释的程序。它们可以看成是GKS和操作系统中文件系统之间的接口。

设备驱动程序是GKS核心部分和图形设备之间的接口。它的任务是产生和设备有关的绘图命令并处理和设备有关的交互输入。在GKS核心部分和设备驱动程序之间可以定义一种接口信息格式,称为工作站接口。在交互式图形设备和操作员之间也存在另一个接口.称为操作员接口。通常这两个接口由GKS的实现者来规定。至于GKS的元文件输出和输入可以看成两个特殊的图形设备,元文件的产生和解释程序就好像是它们的驱动程序。

通过GKS元文件,还可实现图形信息在计算机网络中的通信。应用程序可以通过元文件和另一节点机上的另一个应用程序进行联机的图形信息通信,也可以直接访问存储在另一个节点机上的GKS元文件。所以可以同时把GKS元文件看成GKS和网络之间的接口。

本词条内容贡献者为:

张静 - 副教授 - 西南大学

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。