Introduction

The normalized graphics systems (NGS) represent one of the development directions in computer graphics. They are outcome of international efforts in normalization in computer graphics. By 'Graphics system' can be understood the interface between an application program and a graphics device. As long as a graphics program works with the object's model then the graphics device renders it on the output device. As 'normalized graphics systems' are considered only those adopted by The International Standards Organization, known by the abbreviation ISO.



     The first NGS was in 1985: the Graphical Kernel System (GKS); then in 1987: Computer Graphics Metafile (CGM), the norm for storing graphics data; Graphical Kernel System for Three Dimensions (GKS 3D, 1987), Programmer's Hierarchical Graphics System (PHIGS, 1989), Computer Graphics Interface (CGI, 1992), and PHIGS Plus Lumierre und Shading (PHIGS PLUS, PHIGS+,1992). In 1993, was designed a norm on image processing, named Image Processing and Interchange (IPI).

    The main aim of the NGS to standardize graphics information, and thereby also an international guarantee of transferability, where application programs comply to this norm. With regard to the worldwide developments in computer graphics and the performance of current computer technologies, international standardization in the field of computer graphics does not lag behind in this trend. Since 1977, this has been coordinated by the ISO
.


GKS

    The ISO standard Graphical Kernel System (GKS, IS7942) lays down a set of functions for the programming of application programs, using interactive computer 2D graphics. The GKS is independent of the programming language and the computer platform. It provides us with a basic set of graphics instructions implemented the basics in every programming language.

The GKS comprises the following basic groups:

  • Graphical output elements
  • Logical input device and input modes
  • Workstation
  • GFS environment
  • Metafile
  • Detection of functions and processing of errors
  • GKS graphics output elements

        These are the basic graphics elements for rendering images. Each graphics element has in most cases several parameters determining its actual shape

    1. Polyline - draws a sequence of joint lines. General function for drawing a polyline  


        POLYLINE(N,POINTS

    A series N-1 of pointed abscissas, where POINTS is the list of N points. It can have the following attributes: color, thickness, type of line. It depends on the possibility of the graphics workstation. The index for setting a polyline to A is: SET POLYLINE INDEX(A).

    2. POLYMAKER - description of a set of points by a marker. Drawing this set is implemented by a function 

        POLYMAKER(N,POINTS),

    Locates a marker at every point from POINTS . Attributes: color, type, and size of marker. The function SET POLYMARKERINDEX(A) sets the index of the order of markers to A.

    3. FILL AREA - - fills an area limited by the given points of the limit. Filling of the given area by points of the limit. In the case that the last point is not identical to the first, the GKS connects them to achieve a closed, connected limit.

         FILL AREA(N,POINTS

        FILLAREA draws an area given by the POINTS of the limit. The index of the FILLAREA is SET FILLAREA INDEX(N). Through this is also set the type of fill area, whether it is black & white (empty, full, hatched), or color. If the internal part is empty, only the limit of the fill area is drawn. In GSK this is solved so that a point is inside if the half-line from this point does not pass through the corner of the area or it crosses the given limit in odd number of points (the first time it enters into the area and then does not come out of it).

    4. Graphics element text - TEXT (POSITION, STRING)

        Global attributes of the text are the following: height of character, slant of text, and alignment of text. Some functions are for setting the text: The function for alignment of text is SET TEXT ALIGNMENT (HORIZ, VERT), the function SET CHARACTER HEIGHT (H) sets the width of characters to H.

    $$$APPLET

    Applet Description of a coordinate system of individual characters of the text, Interaction of selection of character, click on mouse button in applet (in the left half -, in the right +sign)

    5. CELL ARRAY - fills a rectangle with sample colors.

        CELL ARRAY (A,B,DX,DY,SX,SY,CA),

    where A and B are edge points in the rectangle, which we are filling. The rectangle is split into DX cells in the direction X , and DY cells in the direction Y. To each cell (I,J) is assigned a color from the field of color indexes CA(I,J), where I takes the values SX to (SX+DX-1) and J from SY to (SY+DY-1). The cell A(AX,AY) will have the color CA(SX,SY) , and the cell B the color CA(SX+DX-1,SY+DY-1).

    6. GENERALIZED DRAWING PRIMITIVE (GDP) - ? specifies new graphical elements. The standard considers also objects, which are not allowed normally, and implemented graphical elements, with the help of which we can define new graphical elements (e.g., by a hardware supported designated device). Examples can be objects such as ellipses or splines.        

    GENERALIZED DRAWING PRIMITIVE (N, POINTS, ID, LDR, DR),

    where ID specifies the type of GDP. POINTS are coordinates of N points used for defining GDP. DR is the array of the length LDR, containing other features of the given GDP.

    CGM

        According to [1] , the international standard CGM (Computer Graphics Metafile) [IS8632] defines the functionality and coding of metafiles for the storing and transfer of 2D graphics information. Serves for storing graphics data.

        The importance of CGM lies in the fact that the CGM file is appropriate for the storing and retrieval of graphical information. This format comprises an arranged set of elements through which it is possible to describe pictures in a way suitable for graphics systems with different architectures and devices with diverse options and uses. This standard enables a sequence or non-sequence approach to the data.

        This standard has the following sections :

  • Function specification
  • Coding by characters
  • Binary coding

  • Function specification

        The goal of CGM is to provide a mechanism and description for the storing and communication of graphics information in a device independent way [1]. Therefore it defines the syntax and semantic of CGM file elements, which are categorized into 9 groups:

  • Separators - separate significant structures in CGM
  • Descriptors of metafile - describe function contents of CGM
  • Descriptors of image - describe attributes of the appearance of images
  • Controlling characters - modify limits and coordinates of systems
  • Graphics input elements - describe an image
  • Attribute elements - describe the appearance of graphical elements
  • Extending elements - describe non-normalized elements
  • External elements - description of outside graphical elements
  • Segment elements - describe segments and their attributes
  • Example of a GSM structure

    BEGIN METAFILE name of metafile
        (descriptors of the file)
    BEGIN PICTURE name of the picture
        (descriptors of the picture)
    BEGIN  PICTURE BODY
        (controlling elements)
        (graphical output elements)
        (attribute elements)
        (external elements)
    END PICTURE
    ...
    END METAFILE



    Coding by symbols and binary

        Version CGM from 1987 includes 3 kind of coding. Coding by characters was used to minimalize size of metafile, binary coding was used to minimalize time of interpretation and coding by text to support readability of metafile.

    PHIGS

        PHIGS Plus Lummierre und Shading (PHIGS PLUS, PHIGS+, 1992 ) standardizes the interface between an application program and graphics system, seeking to achieve a combination of a modeling and rendering system [1]. The aim of PHIGS is to provide in devices and applications an independent way for the creation of and work with multi-level models in 2D and 3D space. An example is OpengGl, although this is not a standard, but does have function similar to that of PHIGS.