Úvod

Normalizované grafické systémy (NGS) predstavujú jeden zo smerov vývoja počítačovej grafiky. Sú výsledkom medzinárodného úsilia o normalizáciu v počítačovej grafike. Pod pojmom grafického systému možno si predstaviť ako rozhranie medzi aplikačným programom a grafickým zariadením. Pokiaľ aplikačný program pracuje s modelom objektu, tak grafické zariadenie ho zobrazuje na výstupné zariadenie. Za normalizované grafické systémy sa považujú iba tie, ktoré boli prijaté medzinárodnou organizáciou pre štandardizáciu - International Organisation for Standardization, známej pod skratkou ISO.



Prvým NGS bol v roku 1985 Graphical Kernel System (GKS). potom v roku 1987Computer Graphics Metafile (CGM) - norma ukladania grafických dát, Graphical Kernel System for Three Dimensions (GKS 3D, 1987), Programmer`s Hierarchcal Interactive Graphics System (PHIGS,1989), Computer Graphics Interface (CGI, 1992 ) a PHIGS Plus Lumierre und Shading (PHIGS PLUS, PHIGS+, 1992). V roku 1993 vznikla norma o spracovaní obrazu pod názvom Image Processing and Interchange (IPI).

    Hlavným cieľom NGS je normovanie grafickej informácie a teda aj medzinárodná garancia prenositeľnosti, pokiaľ aplikačné programy  túto normu spĺňajú. Vzhľadom na celosvetový vývoj počítačovej grafiky a výkonu súčastnej výpočtovej techniky, ani medzinárodná štandardizácia v oblasti počítačovej grafiky tomto trende nezaostáva. Od roku 1977 ju koordinuje ISO.


GKS

ISO norma Graphical Kernel System (GKS, IS7942) určuje množinu funkcii na programovanie aplikačných programov, využívajúc interaktívnu počítačovú 2D grafiku. GKS je nezávislá od programovacieho jazyka a počítačovej platformy. Poskytuje nám základnú množinu grafických príkazov, ktoré sú implementované ako základné v každom programovacom jazyku.

GKS sa skladá z týchto základných skupín :

  • grafické výstupné prvky
  • logické vstupné zariadenia a vstupné režimy
  • pracovná stanica
  • prostredie GKS
  • metasúbor
  • zisťovacie funkcie a spracovanie chýb

  • Grafické výstupné prvky GKS

    Sú to základné grafické prvky na kreslenie obrázkov. Každý grafický prvok má väčšinou niekoľko parametrov, ktoré určujú jeho konkrétny tvar.

    1. Polyline - kreslí postupnosť spojených čiar. Všeobecná funkcia na kreslenie lomenej čiary je 


        POLYLINE(N,POINTS

    Postupnosť N -1 lomených úsečiek, kde POINTS je zoznam N bodov. Môže mať nasledujúce atribúty : farba, hrúbka a typ čiary. Závisí to od možnosti grafickej stanice. Index na nastavenie lomenej čiary na A je SET POLYLINE INDEX(A)

    2. Sled značiek - označenie množiny bodov značkou. Nakreslenie množiny bodov realizuje funkcia 

        POLYMAKER(N,POINTS),

    ktorá v každom bode z POINTS umiestni značku. Atribúty sú : farba, typ a veľkosť značky. Funkcia SET POLYMARKER INDEX(A) nastaví index sledu značiek na A.

    3. Výplňová oblasť - vyplní plochu ohraničenú danými bodmi hranice. Vyplnenie oblasti určenej bodmi hranice. V prípade, že posledný bod nie je totožný s prvým, GKS ich spojí, aby hranica bola uzavretá.

         FILL AREA(N,POINTS

        Výplňová oblasť, nakreslí plochu danú bodmi hranice POINTS. Index výplňovej oblasti je SET FILL AREA INDEX (N). Ním nastavujeme aj typ výplňovej oblasti, a to buď čierno-biele (prázdne, plné, šrafované) alebo farebné. V prípade, že vnútro je prázdne kreslí sa iba hranica výplňovej oblasti. môže sa stať, že sa hranice oblasti pretínajú. Vtedy treba zistiť, ktorý bod je vnútrom oblasti. V GKS sa toto rieši tak, že bod je vnútri ak ak polpriamka z daného bodu, neprechádza vrcholom hranice oblasti alebo pretína danú hranicu v  párnom počte bodov (prvý krát vojde do oblasti, a potom z neho vyjde)

    4. Grafický prvok text - TEXT (POSITION, STRING)

        Globálne atribúty textu, sú: výška znaku, sklon znaku, smer textu a zarovnanie textu. Niektoré funkcie sú na určovanie textu sú: funkcia na zarovnanie textu je SET TEXT ALIGNMENT (HORIZ, VERT), funkcia SET CHARECTER HEIGHT (H) nastavuje šírku znakov na H.

    $$$APPLET

    Applet popis súradnicového systému jednotlivých znakov textu,
    interakcia vyber znak, stlač tlačítko myši v applete (v ľavej polovici -, v pravej + znak)

    5. Pole buniek - vyplní obdĺžnik nejakou vzorkou farieb.

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

    kde body A a B sú krajné body obdĺžnika, ktorý vypĺňame. Obdĺžnik je rozdelený na DX buniek v smere X a DY buniek v smere Y. Ku každej bunke (I,J) je priradená farba, ktorá je priradená z poľa indexov farieb CA(I,J), kde I nadobúda hodnoty SX po (SX+DX-1) a J od SY po (SY+DY-1). Bunka A(AX,AY) bude mať farbu CA(SX,SY) a bunka B farbu CA(SX+DX-1,SY+DY-1).

    6. Zovšeobecnený grafický výstupný prvok (GDP) - špecifikuje nové grafické prvky. Norma pamätala aj na objekty, ktoré nie sú štandartne povolené a implementovala zovšeobecnený grafický prvok, pomocou ktorého si môžeme zadefinovať nové grafické prvky, napríklad hardwarovo podporované určeným zariadením. Príkladom môžu byť objekty ako napríklad elipsy alebo splajny.       

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

    kde ID špecifikuje typ GDP. POINTS sú súradnice N bodov, ktoré sa používajú na definovanie GDP. DR je pole dĺžky LDR, ktoré obsahuje ďalšie vlastnosti daného GDP.

    CGM

    Podľa [1] medzinárodná norma CGM (Computer Graphics Metafile)  [IS8632] definuje funkčnosť a kódovanie metasúboru na ukladanie a prenos grafických 2D informácií. Slúži na ukladanie grafických dát.

        Význam CGM spočíva v skutočnosti, že formát CGM súboru je vhodný na ukladanie a znovuzískanie grafických informácií. Formát pozostáva z usporiadanej množiny prvkov, ktorými možno popísať obrázky spôsobom vhodným pre grafické systémy s rôznymi architektúrami a zariadeniami s rôznymi schopnosťami a využitím. Norma umožňuje sekvenčný a nesekvenčný prístup k dátam.

        Norma sa skladá z nasledujúcich častí :

  • Funkčná špecifikácia
  • Kódovanie znakmi
  • Binárne kódovanie

  • Funkčná špecifikácia

    Cieľom CGM je poskytnúť mechanizmus na popis, ukladanie a komunikáciu grafických informácií od zariadenia nezávislým spôsobom [1]. Preto definuje syntax a sémantiku súboru prvkov CGM, ktorých je nasledujúcich 9 tried :

  • oddeľovače - oddeľujú význačné štruktúry v CGM
  • popisovače metasúboru - popisujú funkčný obsah CGM
  • popisovače obrázku - popisujú atribúty vzhľadu obrázkov
  • riadiace prvky - modifikujú hranice a súradnicové systémy
  • grafické výstupné prvky - popisujú obrázok
  • atribútové prvky - popisujú vzhľad grafických prvkov
  • rozširujúci prvok - popisuje nenormalizované prvky
  • externé prvky - popis mimografických prvkov
  • segmentové prvky - popisujú segmenty a ich atribúty
  • Príklad štruktúry CGM

    BEGIN METAFILE meno metasúboru
        (popisovače metasúboru)
    BEGIN PICTURE meno obrázka
        (popisovače obrázka)
    BEGIN  PICTURE BODY
        (riadiace prvky)
        (grafické výstupné prvky)
        (atribútové prvky)
        (externé prvky)
    END PICTURE
    ...
    END METAFILE



    Kódovanie znakmi a binárne

    Verzia CGM z roku 1987 obsahovala tri druhy kódovania. Kódovanie znakmi sa používalo na minimalizáciu veľkosti metasúboru, binárne kódovanie na minimalizáciu času interpretácie a kódovanie textom na podporu čitateľnosti metasúboru.

    PHIGS

        PHIGS Plus Lummierre und Shading (PHIGS PLUS, PHIGS+, 1992 ) normuje rozhranie medzi aplikačným programom a grafickým systémom a pokúša sa kombinovať modelujúci a zobrazovací systém [1]. Cieľom PHIGS-u je poskytnúť na zariadení a aplikácii nezávislý spôsob tvorby a práce s viacúrovňovými modelmi v 2D a 3D priestore. Príkladom, ktorý síce nie je normou ale má podobnú funkciu ako PHIGS je OpengGl.

    Copyright (c) 1999-2017 Juraj Štugel. www.netgraphics.sk