2.3 图形软件系统
2.3.1 图形软件的组成
图形软件系统应该具有良好的结构,要有合理的层次结构和模块结构。应把整个图形软件分为若干层次,每一层又分为若干模块,使得整个系统容易设计、调试和维护,便于扩充和移植。表2-4所示为图形软件的各层次。
表2-4 图形软件的层次
1.零级图形软件
零级图形软件是最低层的软件,主要解决图形设备与主机的通信、接口等问题,又称设备驱动程序,是一种最基本的输入、输出子程序。由于使用频繁,程序质量要求尽可能高,因此常用汇编语言,甚至机器语言,或接近机器语言的高级语言编写。零级图形软件是面向系统,而不是面向用户的。
2.一级图形软件
一级图形软件又称基本子程序,包括生成基本图形元素和对设备进行管理的各程序模块。它可以用汇编语言编写,也可以用高级语言编写,编写时要从程序的效率与容易编写、调试、移植等方面考虑。一级图形软件既面向系统又面向用户。
3.二级图形软件
二级图形软件也称功能子程序,它是在一级图形软件基础上编制的,其主要任务是建立图形数据结构(图形档案),定义、修改和输出图形并建立各图形设备之间的联系,要具有较强的交互功能。二级图形软件是面向用户的,要求使用方便、容易阅读,便于维护和移植。
4.三级图形软件
三级图形软件是为解决某种应用问题而编写的图形软件,是整个应用软件的一部分。通常由用户编写或系统设计者与用户一起编写。
一般把零级到二级图形软件称为基本图形软件,或称支撑软件,而把三级或三级以上图形软件称为应用图形软件。
2.3.2 基本图形软件
1.基本图形软件的内容
基本图形软件作为图形系统的支撑软件,其功能可根据需要而有所不同,但其基本内容一般应包括:
● 系统管理程序;
● 定义和输出基本图素及复合图素图形的程序;
● 图形变换(包括几何变换、开窗、裁剪等)程序;
● 实时输入处理程序;
● 交互处理程序。
2.建立基本图形软件的方法
通常可采用以下3种方法来建立基本图形软件。
(1) 图形程序包,是以某种高级语言为基础,加上扩充处理图形功能的子程序包。这种方法实现起来比较容易,一般不用或很少修改原来高级语言的编译程序,容易调试,便于修改及扩充。但是由于一般高级语言并不是为处理图形而设计的,因此用其来处理图形,总有不合适之处。
(2) 修改高级语言,是在某种高级语言基础上,经修改其编译系统而实现的。一般是修改其编译系统,扩充一些处理图形的语言和数据类型,改变原高级语言某些不适应图形处理的缺点。但是修改某语言的编译系统并非易事,而且难以彻底解决高级语言不适应图形处理的问题。
(3) 专用高级图形语言,是一种从语句、数据结构到输入、输出等方面都按照处理图形的需要来设计的高级图形语言,它必须有自己独立的编译器。设计和实现这种编译器十分困难,因为这既要具备一般高级语言的功能,又要扩充许多新的图形处理功能。
前两种方法都有大量可以利用的软件资源、程序库以及相关资料,这对一些高级语言已十分熟悉的人来说,要学习的新东西不多。目前,国内外通用的图形软件系统绝大多数都采用前两种方法,特别是图形程序包的方法。但是从长远的观点看,设计一种性能好的专用高级图形语言还是十分重要的。