hide random home http://www.urz.uni-heidelberg.de/zentral/urz/schriften/unixhb/kap06.html (Einblicke ins Internet, 10/1995)

6


Grafik

Allgemeines/Dokumentation
Hilfsmittel bei der täglichen Arbeit
Emulation von IBM 3270-Grafik
Daten-Visualisierung
Geografisches Informationssystem ARC/INFO
Unterprogrammbibliotheken
Public Domain Programme
Hardcopy


6. Grafik

6.1. Allgemeines/Dokumentation

Grafik unter X-Window bedeutet, daß die Grafikanforderungen durch das X-Protokoll definiert sind. Einzelheiten über dieses Konzept erfahren Sie im Kapitel: Das X-Window-System in diesem Handbuch. Grafisches Arbeiten erfolgt an X-Terminals oder an Workstations mit entsprechenden Grafikkarten. Während X-Terminals für die meisten Grafikanwendungen, die im folgenden beschrieben sind, ausreichen, bieten Workstations mit entsprechend teueren Grafikkarten weitere Fähigkeiten zum Beispiel in bezug auf Schnelligkeit und Farbdarstellungen. Im URZ sind z.Z. zwei Workstations, aixgraf1 und aixgraf2, als Grafik-Arbeitsplätze mit 24-Bit-3D/24-Bit-Z-Buffer Grafikkarten, die eine Darstellung von rund 16 Millionen Farben ermöglichen, vorhanden. Als Eingabe für X-Window steht neben der Tastatur eine Maus, als Ausgabe ein hochauflösender Monitor zur Verfügung. Im folgenden wird als Betriebssystem AIX Version 3.2.4 oder höher, IBM FORTRAN 77, ANSI-C und IBM Pascal als Programmiersprachen angenommen.

Grafik-Dokumentation: Aktuelle und ausführliche Informationen über Grafik-Software unter UNIX erhalten Sie online mittels der Kommandos (x)hilfe (Menüpunkt Grafik) bzw. (x)gopher (im Eingang "Informationen zu UNIX/AIX") oder einfach durch Klicken der rechten bzw. linken Maustaste im freien Teil des Bildschirms und Anwählen der entsprechenden Knöpfe. Bei Programmen von IBM erhält man ausführliche Online-Dokumentation auf Hypertext-Basis durch den "InfoExplorer", Aufruf info oder Anwählen durch Klicken der rechten Maustaste im freien Teil des Bildschirms.

Programm-Dokumentation: Neben der Original-Dokumentation der Hersteller, die sich in der Regel in der Beratung, Zi. 001a, befindet, besitzt jedes Programm i.a. eine Online-Hilfe und teilweise auch Lernprogramme.

6.2. Hilfsmittel bei der täglichen Arbeit

6.2.1. Umsetzung von Grafikformaten

Zur Ausgabe von Grafiken auf Drucker/Plotter bzw. zur Umsetzung auf spezielle Grafikformate stehen eine Reihe von Programmen (Freeware, Public Domain) zur Verfügung. Folgende Tabelle gibt einen Überblick:

Name                 Kurzbeschreibung                                         Info         
                                                                              durch/in     
Grafikformatexwd     Screen-Grabber, erzeugt spezielle Ausgabefile            man          
xwud                 Ausgabe der speziellen Ausgabefile von xwd auf den       man          
                     Display.                                                              
xpr                  formatiert Ausgabefile von xwd in PostScript (ohne       man          
                     Farbe), HP PaintJet, HP LaserJet.                                     
xgrab                Screen-Grabber, erzeugt PostScript (mit/ohne F.)         man          
                     Bitmap XPM und XPM2.                                                  
import               Screen-Grabber, erzeugt viele verschiedene               man          
                     Ausgabeformate, siehe bei convert.                                    
xv                   Interpretiert die Grafikformate GIF, JPEG, TIFF, PBM,    man          
                     PGM, PPM, X11 bitmap, RLE, PDS/VICAR, PS, Sun-                        
                     Rasterfile, PM-Formate, sowohl die unkomprimierten als                
                     auch die komprimierten Formen. Die angegebenen                        
                     Eingabe-Formate koennen ebenso bei der Ausgabe                        
                     exportiert werden. Daneben kann xv auch als                           
                     Screen-Grabber verwendet werden.                                      
convert              Interpretiert und schreibt die Grafikformate AVS, EPS,   man          
                     FAX, GIF, MIFF, MTV, PNM, PS, RLE, Sun Raster,  VICAR,                
                     XBM, XWD; VICAR (Read only).                                          
gplot                Interpretiert CGM (Binär, Text); Ausgabe auf X, PS.      man          
ghostview            Interpretiert Postscript (mit/ohne Farbe).               man          
xloadimage, xsetbg   Interpretiert verschiedene Image-Formate, z.B.: FBM      man          
oder xview           (Fuzzy Bitmap), GIF, MacPaint, PCX, RLE, XBM, XPM,                    
                     XWD, PBM, PGM, PPM, Sun Raster.                                       
hp2xx                 Interpretiert HPGL Format auf X und gibt EPS,           man          
                     Uniplex RGIP, Metafont-, emTex- und epicTex, IMG,                     
                     PBM, PCX, HPCL und HPGL (vereinfacht) aus.                            
PBMPLUS in           Verschiedene Image-Formate werden in Portable            /usr/local/  
/usr/local/pbmplu    Image-Formate: PBM, PGM, PPM und wieder umgekehrt        pbmplus      
                     konvertiert.                                                          
UtahRLE in           Manipulation und Konvertierung verschiedener             /usr/local/  
/usr/local/urt       Image-Formate in RLE-Format und umgekehrt.               urt          

Anwendungsbeispiel: xwd | xpr -device ljet | lpr -Ppcl (PCL-Ausgabe am QMS-Drucker) Nach der Eingabe dieses Kommandos wählt man das auszudruckende Fenster durch Mausklick an; xwd erzeugt dann einen speziellen Image-Dump des gewählten Fensters, das Programm xpr formatiert diesen Dump auf PCL-Format (momochrom), während mit dem Kommando lpr dann die entsprechende Ausgabe auf dem Drucker erstellt wird. Eine flexiblere Alternative zu xwd stellt das Programm xv dar. Der Benutzer muß davon ausgehen, daß eine Konvertierung im allgemeinen einen Informationsverlust in bezug auf das ursprüngliche Format darstellt.[1]

6.2.2. Erstellung von grafischen Benutzeroberflächen.

Grafische Benutzeroberflächen dienen dazu, vorhandene Programme oder Kommandoaufrufe in der UNIX-Shell unter X-Window möglichst einfach und benutzerfreundlich darzustellen, aber auch dazu, neue Anwendungen mit geeigneter grafischer Oberfläche zu erstellen. Als einfaches Werkzeug für einen noch unerfahrenen UNIX-Benutzer wird hier das "Scientist Workbench", SWB[2] vorgestellt, das für AIX bereits in übersetzter Form in: /usr/local/swb zu finden ist. Es gibt u.a. Schiebebalken (sliders) und Knöpfe (buttons), die dem Standard-Widgetset von Motif entsprechen. SWB enthält "Ausführbare Widgets", eine Sammlung von (C)-Programmen, die Widgets für die gebräuchlichsten Anwendungen enthält. U.a. sind folgende Programme definiert:

xi_button Anzeige und Auswahl aus mehreren Knöpfen

xi_fs Anzeige einer Verzeichnisstruktur mit Auswaehlen eines files

xi_list Anzeige und Auswahl einer verschiebbaren Liste von Texten

xi_message Anzeige einer kurzen Meldung

xi_option Anzeige und Auswahl von Texten mit Pull down Menue

xi_prompt Anzeige und Eingabe eines kurzen Textes

xi_text Anzeige mehrerer Textzeilen mit Editiermöglichkeit

Beispiel: vi=`xi_option -pr "File to edit" -l file1:file2:file3 -s :` Dieses Kommando kann z.B. innerhalb eines Shell-Scripts aufgerufen werden, um die Auswahl von Files für vi festzulegen. Das Trennsymbol zwischen den Auswahlmöglichkeiten (:) wird in diesem Beispiel durch den Parameter -s festgelegt.

Zur Erstellung von grafischen Oberflächen für komplexere Anwendungen steht das umfangreiche und flexible Programm AIXWindows Interface Composer/6000 (AIC) zur Verfügung, Aufruf: aic & Nach der interaktiven Erstellung der grafischen Oberfläche wird ein rechnerunabhängiger Quellcode (C) erzeugt, der noch kompiliert werden muß. Die einzelnen grafischen Teile der Oberfläche werden mit der Methode WYSIWYG (What You See Is What You Get) zusammengefügt und über den integrierten Resource-Editor angepaßt. Alle von Motif angebotenen Widgets stehen zur Verfügung. Der erzeugte Quellcode kann mit dem integrierten Interpreter ausgetestet und auch auf anderen Plattformen kompiliert werden, sofern Motif vorhanden ist. Dieses Programm wird im Rahmen der Campuslizenz für IBM RS/6000-Rechner angeboten. Online-Information gibt's im InfoExplorer, Stichwort AixWindows Interface Composer.

6.3. Programme zur Grafikverarbeitung

6.3.1. SAS/GRAPH

SAS/GRAPH ist ein Bestandteil von SAS (Statistical Analysis System) und bietet mittels diverser Grafikprozeduren komfortable Möglichkeiten, Daten bzw. statistische Zusammenhänge interaktiv grafisch darzustellen. SAS/GRAPH wird im Kapitel über SAS in diesem Handbuch ausführlich beschrieben.

6.3.2. Emulation von 3270-Grafik auf AIX-Rechnern

Die 3270-Grafik auf den MVS-und VM-Rechnern läßt sich auf AIX durch Emulation der entsprechenden Grafik-Terminals IBM 3179G und IBM 3277-GA in Verbindung mit dem TCP/IP-Protokoll erreichen. Damit können dann u.a. alle bekannten GDDM-Anwendungen und das Previewing von Plot-Ausgabe der MVS-Plotter ausgeführt werden. Desweiteren kann man damit auch Arbeiten mit TSO oder HADES betreiben. Aufruf: aix3270 & oder mittlere Maustaste / Menüpunkt 3270 Graphics Es erscheint eine grafische Oberfläche, bei der die Möglichkeiten zur Terminalemulation und weitere nützliche Informationen ausgewählt werden können. Wenn Sie öfters Terminalemulationen verwenden, können Sie auch über den Menüpunkt Arbeitsumgebung/Präferenzen/3270-Emulator die Grafik-Terminals auswählen.

6.3.3. Programme zur Daten-Visualisierung

Bei diesen Programmen werden die Daten nicht nur als Kurvendiagramme oder Funktionsgebirge dargestellt, sondern auch analysiert, manipuliert und modifiziert. Der Unterschied zur Präsentationsgrafik besteht darin, daß man die Daten nicht nur darstellen, sondern auch verstehen will. Zur Zeit sind folgende Visualisierungsprogramme vorhanden:

IBM AIX Visualization Data Explorer/6000

PV-WAVE

CQUEL.BYU

UNIRAS-Grafiksystem

Man unterscheidet zwischen "Schlüsselfertigen Visualisierungsprogrammen"

("Turnkey Visualization Programs") und "Visualisierungs-Erstellungsprogrammen")

("Application Builders"). Zur ersten Gruppe zählen PV-WAVE, CQUEL.BYU und

UNIRAS, zur zweiten DATA Explorer/6000 von IBM.[3] Die zur ersten Gruppe

gehörenden Programme sind in abnehmender Komplexität und Flexibilität

angeführt.

6.3.3.1. PV-WAVE

Dieses Programmpaket umfaßt einen Kommandointerpreter mit einer hochstrukturierten, FORTRAN ähnlichen Kommandosprache und einer reichhaltigen Programmsammlung zur Darstellung von 2D/3D Grafiken und Images. Das Programm ist sowohl interaktiv als auch in Batch zu betreiben. Merkmale sind u.a.:

Darstellung von 2D/3D Grafiken in Form von x-y-Daten, Gestaltung von Achsen, Ergänzung von Bildern, Mehrfachbilder, grafische Eingabe, Contour-Plots, Surface-Plots, Kombination verschiedener Methoden, unterschiedliche Farbmodelle.

Bildverarbeitung: Darstellen von Bildern, Vergrössern, Verkleinern, Algorithmen zur Bildverarbeitung (Glätten, Filtern, statistische Funktionen). Geometrische Transformationen, Warping, morphologische Operationen, Texturemapping eines Rasterbildes auf eine 3D-Oberfläche, Animation, Raytracing.

Folgende Ausgabeformate werden unterstützt: PostScript, EPSI, HPGL, PICT, CGM und TIFF.

Der Aufruf lautet (zwei Lizenzen sind vorhanden): pv-wave &

Abb. 1:

Beispiel für PV-WAVE-

Kommandosprache:

z = Shift(Dist(40),20,20)

Surface, Exp(-(-z/10)^2)

6.3.3.2. CQUEL.BYU

Dieses Programmpaket ist ein 3D-Modellierungs-und Visualisierungsprogramm und ist als Nachfolgeprogramm von MOVIE.BYU in MVS konzipiert. Die sog. Geometriedateien in MVS und AIX können ausgetauscht werden. Die Benutzersteuerung geschieht entweder durch Anklicken von Menüs oder durch Kommandoeingabe, (Keyframe)-Animation, Raytracing und Fraktalbildung werden unterstützt. Daten und Modelle können in verschiedenen Formaten abgespeichert und gelesen werden. zum Beispiel in den Geometriedateien und IGES-Dateien (=Standard-Format in CAD-Programmen), Bilder im TIFF und xwd-Format. Als Ausgabe-Format ist auch PostScript möglich. Der Aufruf erfolgt mit:

cquel.byu &

Abb. 2:

Beispiel einer Animation mit CQUEL.BYU:

Ein Objekt (Drahtmodell einer Kugel) wird als

Objekt einer Animationssequenz von 20 Rahmen ("frames") definiert; Rahmen 0, 10, 20 bilden die

Schlüsselrahmen. Die Bilder dazwischen werden berechnet und dargestellt.

6.3.3.3. IBM AIX Visualization Data Explorer/6000

Dieses Programm ist ein Beispiel eines "Visualisierungs-Erstellungsprogramms": Mittels der Maus wird ein Datenflußpfad aufgebaut. Jeder Knoten des Datenflußpfad kann dabei über mehrere Ein-und Ausgänge verfügen, über die die Daten ausgetauscht werden. Das auf der Zeichenfläche auf diese Weise erstellte Programm wird auch als "visuelles Programm" bezeichnet. Neben eigenen flexiblen Datenformaten wird auch das sog. netCDF-Format (Network Common Data Format) unterstützt. Mehrere Darstellungstechniken, z.B. Volume Rendering oder Iso-Oberflächen lassen sich zur Erstellung eines einzigen Bildes oder einer Bildsequenz (Animation) kombinieren. Zur Steuerung des Darstellungsprozesses kann das erstellte visuelle Programm über die menügesteuerte Benutzeroberfläche einen bestimmten Datensatz verwenden oder es kann mit einem Programm-Editor die Ausführung der Visualisierung modifiziert werden. Über eine eigene Programmierschnittstelle können eigene Visualisierungsmodule, in C oder FORTRAN geschrieben, selbst entwickelt werden. Bei der Bildausgabe werden die Grafikformate TIFF und PostScript unterstützt. Das Programm kann interaktiv oder in Batch betrieben werden. Der Aufruf erfolgt mit: dx & Unter /usr/lpp/dx/samples stehen ausführliche Beispiele, Daten und Visualisierungsprogramme zur Verfügung, insbesondere wird dabei auf das Tutorial in/usr/lpp/dx/samples/tutorial verwiesen. Das Programm ist Bestandteil der IBM AIX Campus Lizenz.

Abb. 3:

Datenflußpfad Im Data/Exporer:

Die Knoten im Zeichenfeld

representieren die Module, aus denen das Visualisierungs-

programm aufgebaut ist. Der Datenaustausch erfolgt über die mit Linien verbundenen Ein-/Ausgänge der Knoten. Ausführen durch Anklicken von "Execute" in der Menü-Leiste.

6.3.3.4. UNIRAS-Grafiksystem

Dieses System ist Bestandteil der UNIRAS Campus Lizenz der Universität Heidelberg im Rahmen der entsprechenden Landeslizenz fuer Baden-Württemberg. Es besteht aus einer Reihe von interaktiven Programmen und aus Unterprogramm-Bibliotheken. Diese werden im Kap. Grafische Unterprogrammbibliotheken behandelt. Dem Grafiksystem UNIRAS gemeinsam sind u.a. folgende Merkmale:

Unterstützung sehr vieler Gerätetreiber, deren Konfiguration an lokale Gegebenheiten angepaßt werden können. Verschiedene Farbmodelle sind vorhanden.

Neben einem eigenen, System abhängigen Grafikmetafile - UNIPICT Format - wird die ISO-Standard Computer Graphics Metafile CGM unterstützt.

Die Textfonts sind nach ISO 8859-1 kodiert; zusätzlich ist eine eigene Charakter Datenbank (36000 Symbole) vorhanden. Zwischen verschiedenen nationalen Sprachen kann gewählt werden.

Der Aufruf von UNIRAS-Grafiksystem erfolgt entweder durch

1. Eingeben von (Methode 1): /usr/lib/uniras/6v3b/base/uni.profile - am einfachsten ist es, diese Zeile in die eigene Profile-Datei, z.B. .profile mit aufzunehmen - anschließend muß für jede gewünschte UNIRAS-Anwendung der entsprechende Aufruf mit den geeigneten Parametern erfolgen, oder einfacher mit 2. Eingeben von (Methode 2): uniras & Damit wird eine grafische Oberfläche erzeugt, mit der mittels Mausklick die gewünschten Anwendungen auf einfache Weise aktiviert werden können.

UNIGRAPH+2000

Aufruf nach Methode 1: unigraph -d mx11 -m -warp -exit & Aufruf nach Methode 2: Anklicken der grafischen Oberfläche bei UNIGRAPH+2000 + Ok Es können Daten in verschiedenen Grafiken (2D/3D/4D) dargestellt werden; dabei ist es sehr einfach, für einen gegebenen Datensatz unterschiedliche grafische Darstellungen zu erzeugen oder Grafen in Farbe, Form und Aussehen zu verändern.

Die Benutzersteuerung erfolgt durch Maus, Kommandoeingabe oder Cursorbewegungen. Das Programm kann sowohl interaktiv als auch in Batch verarbeitet werden. Weitere Merkmale von UNIGRAPH+2000 sind u.a.:

Flexible, einfache Datenformate zur Eingabe von Daten.

Integrierter Texteditor zur direkten Dateneingabe.

Ausgabe der Grafiken in präsentationstauglicher Form auf diverse

Ausgabegeräte und auf die Grafikformate EPS, PS, HPGL und CGM.

Integrierte mathematische und statistische Funktionen zur Auswertung

und Analyse der Daten.

Exportieren der Grafiken im proprietären Format UNIPICT zur

Weiterverarbeitung mit PICTURE MANAGER und UNIEDIT 2000 (siehe unten).

Zur Zeit besteht das Hardcopy-System im URZ aus folgenden Treibern:

1. PostScript-Drucker QMS DIN A4 Quer (s/w)

2. Color PostScript-Grafikformat, Standardgröße 19.7x28.5 cm

3. Color Encaps. PostScript Grafikformat, Standardgröße 11.85x16.93 cm

4. HPGL-QMS-Drucker DIN A4 Quer (s/w)

5. HP7475A-Plotter Grafikformat DIN A4 Quer

6. HP DeskJet 500C-Drucker[4]

7. PCL-QMS-Drucker DIN A4 Quer (s/w)

8. MVS-Plotter A4-Format[5]

9. MVS-PLotter A0-Format

Zur Auswahl der verschiedenen Ausgabetreiber muß der Befehl HARDCOPY/DEVICE abgegeben werden. Zur Aktivierung der Ausgabe ist der Befehl HARDCOPY/PRINT zu verwenden. Bei Ausgabe auf eine Grafik-Datei muß vorher aber noch der Befehl HARDCOPY/PLOTFILE mit geeigneten Angaben eingegeben werden.

Ein Tutorial zu diesem Programm ist vorhanden; zusätzlich findet man in /usr/local/demos/uniras/unigraph eine ausführlichere Beschreibung zur Handhabung dieses Programms.

PICTURE MANAGER

Aufruf nach Methode 1: upm -d mx11 -m -exit & Aufruf nach Methode 2: Anklicken der grafischen Oberfläche bei PICTURE MANAGER + Ok Mit diesem Programm können Bilddateien unterschiedlichster Formate (CGM, UNIPICT, UNIPORT) importiert und bearbeitet werden. Das Format UNIPORT ist ein wie UNIPICT proprietäres Format von UNIRAS, aber maschinenunabhängig. Es können dabei mehrere eingelesene Bilddateien zu einer Grafik zusammengefügt werden. Die Benutzersteuerung erfolgt wie bei UNIGRAPH+2000 durch Maus, Kommandoeingabe oder Cursor. Das Hardcopy-System entspricht ebenfalls dem von UNIGRAPH+2000.

In /usr/local/demos/uniras/upm findet man eine ausführliche Beschreibung zur Handhabung dieses Programms.

UNIEDIT 2000

Aufruf nach Methode 1: uniedit -d mx11 -m -exit & Aufruf nach Methode 2: Anklicken der grafischen Oberfläche bei UNIEDIT 2000 + Ok Dieses Programm ist ein Grafischer Editor, mit dem Zeichnungen erstellt und bereits vorhandene UNIRAS-Grafiken weiterverarbeitet und verfeinert werden können. Außerdem ist es möglich, Logos zu erstellen, die dann in UNIGRAPH+2000 eingelesen werden können. Die Benutzersteuerung erfolgt wie bei UNIGRAPH+2000 durch Maus, Kommandoeingabe oder Cursor. Das Hardcopy-System entspricht ebenfalls dem von UNIGRAPH+2000.

In /usr/local/demos/uniras/uniedit findet man eine ausführliche Beschreibung zur Handhabung dieses Programms.

6.3.4. Geografisches Informationssystem ARC/INFO

Geografische Informationssysteme dienen zur Erfassung und Analyse räumlicher Daten (Karten- und/oder Fernerkennungsdaten, z.B. Satelittenbilder). Dieses Programm kann sowohl Vektor- als auch Rasterdaten verarbeiten. Die Benutzersteuerung erfolgt dabei durch Kommandos als auch durch Menüs (Maus). Die Eingabe durch das im URZ befindliche Digitalisiertablett DrawingBoard II/33360 wird unterstützt. Zur Vereinfachung der Benutzerführung enthält ARC/INFO eine eigene Metasprache, mit der menügesteuerte Oberflächen entwickelt werden können. Mögliche Eingabeformate sind TIFF, Sun Raster, RLC (Run Length Compressed), ERDAS, BIL[6], BIP4 , GRASS (3.0 Format) und GRID (ESRI-Format). Ausgabeformate sind u.a. EPSF, HPGL, HPGL2, CGM, Illustrator (Adobe Systems Illustrator 88 Format) und Sun Raster Format. Datenbankzugriffe über SQL bzw. Ingres-Netz auf Daten in ORACLE bzw. INGRES werden unterstützt. Der Aufruf erfolgt mit: arc & Nach dem Aufruf muß der Typ der X-Station angegeben werden: Eingabe von display 9999 oder &station 9999 Zum Arbeiten mit Menüs genügt dabei die Eingabe von: arctools Es steht ein umfangreiches Tutorial und Trainingsprogramm zur Verfügung. Im übrigen werden vom Geograph. Institut regelmäßige Kurse durchgeführt.[7]

Literatur zu Abschnitt 6.3 (Auswahl)

AIX/User Interface Programming Concepts, Vol.2: AixWindows Interface Composer

PV-WAVE Command Language Reference und Command Language User's Guide

CQUEL.BYU - Handbook

IBM Visualization Data Explorer User's Guide und Programmer's Reference

ARC, ARCPLOT, ARCEDIT Command Reference

ARC/INFO Data Model, Concepts & Key Terms

Understanding GIS - The ARC/INFO Method

AGS/UNIGRAPH+2000 User Guide and Reference Manual

AGS/PICTURE MANAGER User Guide and Reference Manual

AGS/UNIEDIT 2000 User Guide and Reference Manual

6.4. Grafische Unterprogrammbibliotheken

6.4.1. Allgemeines

Hier werden grafische Bibliotheken zur Erzeugung und Manipulation von Grafiken in Vektor- und Raster-Darstellung beschrieben. Alle hier vorgestellten Bibliotheken werden von FORTRAN, einige auch von C und Pascal unterstützt. Die folgende Tabelle gibt einen Überblick in der Reihenfolge abnehmender Komplexität und Flexibilität:

Name             Unterstützte Compiler    Ausgabe                     Bemerkungen            
 graPHIGS        FORTRAN, C, Pascal       X, CGM, GDF                 Bestandteil von AIX    
                                                                      Personal graPHIGS      
 GKS             FORTRAN, C               X, CGM, GKSM                Bestandteil von AIX    
                                                                      Personal graPHIGS8     
 AIX/6000        FORTRAN, C, Pascal       X, CGM, PS, HPGL                                   
Graphics  Tool                                                                               
Collect.9                                                                                    
 UNIRAS -        FORTRAN, C               diverse Ausgabetreiber                             
Bibliotheken                                                                                 
 NAG             FORTRAN                  X, PS, HPGL,   MVS-Plotter                         
GRAPHICS                                                                                     
LIBRARY                                                                                      
 TW GRAPH        FORTRAN                  X, CGM, PS, MVS-Plotter                            
 URZ Standard    FORTRAN                  X, CGM, PS, MVS-Plotter     BENSON-Aufrufe         
Plot-                                                                 werden                 
Bibliothek                                                            nicht                  
                                                                      unterstützt10          

6.4.2. AIX Personal graPHIGS

AIX Personal graPHIGS ist ein Bestandteil der AIXwindows Environment/6000 /3D - Option zur interaktiven und geräteunabhängigen 2D/3D-Grafikverarbeitung in einer komlexen Systemumgebung. Die unterstützten Eingabearten sind Koordinaten ("locator"), Polygonzug ("stroke"), Auswahl ("choice","pick"), Text ("string") und Zahlenwerte ("valuator"). Zwei Programmierschnittstellen sind vorhanden, nämlich graPHIGS und GKS.

6.4.2.1. Die Schnittstelle graPHIGS

Dies ist die Implementierung der ISO-Normen PHIGS und PHIGS PLUS. PHIGS steht für Programmers Hierarchical Iinteractive Graphics System. Im Gegensatz zu GKS (s. unten) lassen sich hier hierarchische Strukturen aufbauen. Durch seine komplexen Möglichkeiten zur Darstellung und Visualisierung von Objekten ist es in weiten Bereichen der technisch-wissenschaftlichen Anwendungen als Programmierschnittstelle verbreitet. Neben den von GKS (s. unten) unterstützten Grafik-Primitiven werden u.a. Rasterdaten, Polyeder und NURBS (nur PHIGS PLUS) unterstützt[11]. Zur Darstellung und Modellierung von Objekten stehen viele Darstellungsarten wie Drahtmodelle, Flat shading und Gouraud shading[12], Oberflächenmodelle mit Lichtquellen (nur PHIGS PLUS) mit Unterdrückung von nicht sichtbaren Linien und Flächen zur Verfügung. Die bei PHIGS PLUS genannten Möglichkeiten werden nur auf Workstations mit geeigneten Grafikadaptern realisiert. Im URZ stehen dafür die Workstations aixgraf1 und aixgraf2 zur Verfügung. Programmierschnittstellen für graPHIGS sind: Für C: xlc -lgP Programm.c -o Programm Für FORTRAN:xlf -lgP Programm.f -o Programm Für Pascal:xlp -lgP Programm.pas -o Programm Aus-/Eingabeeinheiten für graPHIGS werden durch die Kontrollfunktion Open Workstation (in FORTRAN) CALL GPOPWS(wkid, Connid, Wstype) spezifiziert, wobei wkid einen fortlaufenden Index bezeichnet. Die folgende Tabelle gibt eine Zusammenstellung der unterstützten Einheiten:

Einheit               Kategorie             Connid                Wstype                
X-Window              Ein-/Ausgabe          '*'                   'X       '            
CGM - Binär           Ausgabe               'File-Name'           'CGM    '             
GDF-Metafile          Ausgabe               'File-Name'           'GDF     '            

GDF bedeutet Graphic Display File und bezeichnet ein Grafikformat, das mit dem Aufruf cvtgdf File-Name in ein, auf dem Großrechner mit MVS oder VM/CMS wohldefiniertes Grafikformat, nämlich ADMGDF, zur Weiterverarbeitung mit dem Grafik-Utility CHART konvertiert werden kann. Die Ausgabe von CGM kann z.B. mit dem PICTURE MANAGER von UNIRAS (vgl. Abschnitt "Programme zur Daten-Visualisierung") weiterverarbeitet werden.

Wichtige Kontrollfunktionen von graPHIGS, dargestellt für FORTRAN, sind:

CALL GPOPH('SYSPRINT',0) Open graPHIGS graPHIGS wird initialisiert;

Fehlermeldungen kommen

auf die File SYSPRINT.

CALL GPOPWS(1,'*','X ') Open Workstation X-Window wird als Aus-/

Eingabe definiert.

CALL GPCLWS(1) Close Workstation Hier wird die Workstation

(X-Window), geschlossen.

CALL GPCLPH Close graPHIGS graPHIGS wird termi-

niert.

Anmerkung:

graPHIGS enthält zwei Arten von Unterprogrammen, nämlich die mit GPxxxx bezeichneten (wie oben die Kontrollprogramme) und Unterprogramme, die dem Standard ISO-ANSI-PHIGS mit Sprachbindung an C und FORTRAN entsprechen. Eine Mischung von beiden ist möglich.

Wie sich hierarchische Strukturen in graPHIGS aufbauen lassen, zeigt die folgende Abbildung (Abb.1) am Beispiel einer Textausgabe:

Abb. 4:

Aufbau und Anwendung hierarchischer Strukturen in graPHIGS gezeigt anhand von Textausgabe.

Ein Lernprogramm für graPHIGS steht durch Aufruf von /usr/lpp/graPHIGS/clients/gPtutor zur Verfügung. Ebenso gibt es ausführliche Beispiele und Demos in /usr/lpp/graPHIGS/samples Online Information erhält man im InfoExplorer mit dem Stichwort graPHIGS.

6.4.2.2. GKS

GKS (Graphical Kernel System) ist von ISO genormt. Bei dieser Implementierung handelt es sich um die 2D-Norm von GKS mit der höchsten Funktionalitätsstufe 2c (Die Funktionalität von GKS wird in den Stufen 0,1,2,a,b,c beschrieben). GKS enthält elementare Routinen zur interaktiven Grafikverarbeitung. Die unterstützten Grafik-Primitive sind Polyline, Polymarker, Polygone, Füllgebiete, Text, Zellmatrix und Verallgemeinertes Darstellungselement. GKS enthält ein eigenes Metafile (GKSM) zum Archvieren von Bildern, das sich aber wegen fehlender Norm nicht zum Austausch mit anderen Programmen eignet. Das System dient hauptsächlich dazu, in anderen Programmen als Basis-Grafiksystem eingebunden zu werden, vgl. dazu z.B. die Abschnitte über NAG GRAPHICS LIBRARY und TW GRAPH. FORTRAN:xlf -lgksco -lgP Programm.f -o ProgrammC:xlc -lgksco -lgP Programm.c -o Programm Aus-/Eingabeeinheiten für GKS werden durch die Kontrollfunktion Open Workstation (in FORTRAN) CALL GOPWK(wkid, Connid, Wstype) spezifiziert, wobei wkid einen fortlaufenden Index bezeichnet. Die folgende Tabelle gibt eine Zusammenstellung der unterstützten Einheiten:
Einheit               Kategorie             Connid                Wstype                
X-Window              Ein-/Ausgabe          1                     1                     
WISS                  Ausgabe               1                     2                     
GKSM-Ausgabe          Ausgabe               1                     3                     
GKSM-Eingabe          Eingabe               1                     4                     
CGM - Binär           Ausgabe               1                     5                     

WISS bedeutet Workstation Independent Segment Storage und bezeichnet einen internen Speicherbereich zum Austausch von Grafiken zwischen verschiedenen Einheiten. Die Ausgabe auf CGM kann z.B. mit dem PICTURE MANAGER von UNIRAS (vgl. Abschnitt über Programme zur Daten-Visualisierung) weiterverarbeitet werden. Wichtige Kontrollfunktionen von GKS (in FORTRAN):

CALL GOPKS(6,0) Open GKS Erster Aufruf zum Initialisieren

von GKS.

CALL GOPWK(1,1,1) Open Workstation Aus-/Eingabe auf X-Window

wird definiert.

CALL GCLWK(1) Close Workstation Aus-/Eingabe auf X-Window wird beendet. CALL GCLKS Close GKS Terminieren von GKS.

Ein ausführliches Beispiel-Programm für FORTRAN mit Makefile findet man in dem Verzeichnis: /usr/lpp/graPHIGS/samples/roomdemo Online Information erhält man im InfoExplorer mit dem Stichwort GKS.

6.4.3. AIX/6000 Professional Graphics Tool Collection

Dieses System besteht aus Unterprogramm-Bibliotheken zur Erstellung und Manipulation von geräteunabhängigen, interaktiven 2-D-Grafikanwendungen. Als Eingabemedien dienen Tastatur, Maus und Funktionstasten. Die unterstützten Eingabearten sind Koordinaten ("locator"), Auswahl ("choice"), Text ("string") und Zahlenwerte ("valuator"). Folgende Geräte werden unterstützt:
Typ         Name          Beschreibung                                                   
Ausgabe     vdipro        IBM Proprinter II, IBM Proprinter XL Printers                  
Ausgabe     vdipro24      IBM Proprinter X24, IBM Proprinter XL24 Printers               
Ausgabe     vdi5202       IBM Quitwriter III Printer                                     
Virtuelle   vdipmp        IBM PageMapped Printers                                        
Geräteschn                                                                               
ittstelleA                                                                               
usgabe                                                                                   
Ausgabe     vdilaser      Hewlett-Packard Laserjet+Printer                               
Ausgabe     vdips         PostScript Printers                                            
Prof.       vdiplot       IBM Color Plotters                                             
Graphics                                                                                 
Tool                                                                                     
Collection                                                                               
Ausgabe                                                                                  
Aus/Ein     vdix          X-Window                                                       
Aus/Ein     vdi4105       Tektronix 4105 Terminal                                        
Ausgabe     vdimeta       IBM Computer Graphics Binary Format Metafile                   
Ausgabe     vditext       IBM Computer Graphics Clear Text Format Metafile               
Ausgabe     vdichar       IBM Computer Graphics Character Format Metafile                
Eingabe     vdidials      IBM Dials                                                      
Eingabe     vdilpfk       IBM LPFK (Lighted Program Function Keyboard)                   
Eingabe     vditablet     IBM Tabletts                                                   

In der Anwendung wird beim Öffnen der Aus- und/oder Eingabe eine Zeichenkette, z.B. DDEVICE spezifiziert, die als Environment-Variable dem gewünschten Gerätenamen zugeordnet wird. Beispiel: export DDEVICE=vdix Damit wird die Aus- bzw. Eingabe auf X-Window definiert. Durch Spezifizieren verschiedener Zeichenketten, z.B. DDEVICE1, DDEVICE2 usw. können in der Anwendung mehrere Geräte aktiviert werden. Man bezeichnet dieses Verfahren als Virtuelle Geräteschnittstelle[13]. AIX/6000 Professional Graphics Tool Collection ist Bestandteil der Campus-Lizenz für RISC/6000-Rechner von IBM und besteht aus drei Teilen, die auch einzeln lizenziert werden können:

6.4.3.1. AIX Computer Graphics Interface Toolkit/6000

Es werden eine reiche Auswahl von 2D-Grafikprimitiven (Polygone, Ellipsen, gefüllte Flächen, Bitmaps, Texte usw.) angeboten. Diese Bibliothek ist Bestandteil der Campus-Lizenz für IBM/RS6000-Rechner von IBM. Aufgerufen wird sie mit: FORTRAN:xlf /usr/lpp/vdi/lib/forvdi.a -o filename filename.fC:xlc /usr/lpp/vdi/lib/cvdi.a -o filename filename.cPascal:xlp /usr/lpp/vdi/lib/pasvdi.a -o filename filename.pas On-Line-Dokumentation erhält man im InfoExplorer unter dem Stichwort Computer Graphics Interface Toolkit.

6.4.3.2. AIX Graphics Plotting System/6000

Dies ist eine Unterprogramm-Sammlung zur Erstellung von Geschäftsgrafiken. Numerische Daten können in unterschiedliche Diagrammarten (Balken, Linien, Kuchen usw..) umgesetzt werden. Neben unterschiedlichen, skalierbaren Textfonts stehen individuell veränderbare Grafikelemente wie Linien, Kreise, Pfeile, Rahmen etc. für die Ausgestaltung der Grafiken zur Verfügung. Aufgerufen wird sie mit: FORTRAN:xlf /usr/lpp/vdiplot/lib/forplot.a -o filename filename.fC:xlc /usr/lpp/vdiplot/lib/cplot.a -lm -o filename filename.cPascal:xlp /usr/lpp/vdiplot/lib/pasplot.a -o filename filename.pas

Ein kleines Beispielprogramm dient zur Illustration:

implicit integer (a-z)

C DEFINIEREN DER DATEN

real xray(4), yray(4)

integer status

data xray /1.,2.,3.,4./, yray /15.,27.,20.,11./

C ÖFFNEN DES SYSTEMS UND ÖFFNEN DES GERÄTES FÜR AUS-/EINGABE

status=popnps()

status=ppsot('DDEVICE')

status=ppsin('DDEVICE')

C DEFINIERE DIAGRAMMTYP - LINIE UND ZEICHENFLÄCHE

status=pdsxy(1,4,xray,yray)

status=pdsview(0.,0.,49.9,100.)

C SETZE AUSGABEATTRIBUT-STIL UND GEBE AUS

status=pdsstl(1,3)

status=pdsfil(1,0,1)

status=ppltit()

C WARTE AUF BENUTZEREINGABE, SCHLIESSE EINHEIT UND SYSTEM

status=prqch(8,ich)

status=pclio('DDEVICE

status=pclsps()

end

Abb. 5:

Ausgabe des obigen Beispiel-

Programms. Als Environment-

Variable wurde gesetzt:

export DDEVICE=vdix

Online-Dokumentation erhält man im InfoExplorer mit dem Stichwort Graphics PLotting System/6000.

6.4.3.3. AIX Graphics File Translator/6000

Mit diesem Werkzeug können CGM-Dateien (Computer Graphics Metafiles) in Binär-,Charakter-und Text-Darstellung interpretiert und ausgegeben werden. Es ist auch möglich, mehrere CGM-Dateien zu kombinieren. Aufruf der Bibliothek mit: FORTRAN:xlf /usr/lpp/vdigft/lib/formeta.a -o filename filename.fC:xlc /usr/lpp/vdigft/lib/cmeta.a -lm -o filename filename.cPascal:xlp /usr/lpp/vdigft/lib/pasmeta.a -o filename filename.pas Online-Dokumentation erhält man im InfoExplorer, Stichwort Graphics File Translator/6000.

6.4.4. UNIRAS-Bibliotheken

Das UNIRAS-Grafiksystem besteht neben den interaktiven Visualisierungsprogrammen aus einer Reihe von Bibliotheken zur 2D/3D - Grafikverarbeitung. Die wichtigsten Merkmale von UNIRAS wurden bereits im Abschnitt: Programme zur Datenvisualisierung/UNIRAS-Grafiksystem aufgezeigt. Folgende Bibliotheken sind vorhanden:

FGL/AGL Fundamental Graphics Library/Application Graphics Library

Basis-und komplexere Grafikanwendung für FORTRAN und C

agX/Toolmaster Komplexe Anwenderprogramme über X-Window/Motif für C

FGL/AGL und agX/Toolmaster sind jeweils in folgende Anwendungsgebiete unterteilt:

CGM                       Routinen zur Bearbeitung von CGM-Grafikdateien (CGM-Dateien   
                          werden erzeugt und interpretiert).                            
GRAPHICS                  Basisroutinen fuer 2D- und 3D-Darstellungen, für Texte und    
                          für das Farbsystem.                                           
IMAGE                     Routinen zur Visualisierung von Daten, die als                
                          Raster-daten, z.B. Datensätze aus Meßverfahren, Scan-Daten    
                          oder numerischen Berechnungen, vorliegen.                     
3D-RENDER                 Modellierung und 3D-Darstellung.                              
AXES                      Darstellung von Achsen.                                       
BLOCKS                    Behandlung von 3D-Funktionen.                                 
CHARTS                    Erzeugung von Präsentationsgrafiken.                          
CONTOUR/ CONTOUR PLUS     Darstellung von Konturen, erweitert um Möglichkeiten zur      
                          Darstellung über variable Gitterabstände in                   
                          benutzerdefinierten Regionen und Projektionen.                
FLOWMAPS                  Erzeugung von Flußdiagrammen u.a. aus der UNIRAS              
                          Charakter-Datenbank.                                          
GRIDS                     Darstellung von Daten in 2D- oder 3D-Rasterdiagrammen.        
INTERPOLATIONS            Interpolation von unregelmäßig angeordneten Gittern.          
KRIGING                   Spezielle Interpolationsroutinen, insbesondere für            
                          geophysikalische Anwendungen.                                 
PROJECTIONS               Kartographische Projektionen.                                 
SEISPLOTS                 Darstellung seismologischer Daten.                            
VOLUMES                   Verarbeitung von Daten in 3D-Gittern.                         

Zum Ansprechen der Bibliotheken stehen zwei Methoden zur Verfügung, je nach der Art und Weise, wie das UNIRAS-Grafiksystem initialisiert wurde (vgl. im Abschnitt: UNIRAS-Grafiksystem).

Nach Methode 1 geschieht das Kompilieren/Linken von FORTRAN- bzw. C-

Programmen durch Aufruf von unilink Programm.f bzw. unilink Programm.c und für C-Programme in agX/Toolmaster mit agxlink Programm.c Das entstandene Programm Programm im aktuellen Verzeichnis kann dann ausge-

führt werden. Für jede Routine erhält man im übrigen mit man Routine-Name die entsprechende Beschreibung der UNIRAS-Routine.

Nach Methode 2 wird eine grafische Oberfläche erzeugt, mit der mittels Mausklick die gewünschten Anwendungen auf einfache Weise aktiviert werden können. Zum Kompilieren/Linken den gewünschten Knopf mit der linken Maustaste auswählen. Das entstandene Programm Programm steht im aktuellen Verzeichnis und kann mit dem Knopf: Run UNIRAS with your Parameter(s) ausgeführt werden. Für jede UNIRAS-Routine kann über den Knopf: Man page for UNIRAS eine entsprechende Beschreibung erhalten werden.

Die folgende Tabelle gibt eine Auswahl der z.Zt. im URZ unterstützten Gerätetreiber. Der Namen eines Gerätetreibers setzt sich i.a. zusammen aus einer Typ-Kennung, z.B. p für Vektor-Treiber, Geräte-Name wie hp7475 und Zeichenfeldgröße wie a4. Beachten Sie bitte, daß die Gerätenamen in Groß-und/oder Kleinschreibung angegeben werden können, während Dateinamen als UNIX-Files in der angegebenen Schreibweise stehen müssen.

 Beschreibung                 Name                          Ausgabe/Ausgabedatei          
  X-Window                    mx11                          Bildschirm                    
  PostScript (s/w)            hposta                        POST                          
  PostScript                  hcposta                       POST                          
  Encapsulated PostScript     hcposteps                     POST                          
  HPGL                        php7475a4                     HPGL                          
  PCL                         ghp2106a4                     unirast.rdb                   
  HPDeskJet 500C              ghp2114a4                     unirast.rdb                   
  MVS-Stiftplotter            pc1044                        Plot.in.MVS                   
  CGM - Binär, Charakter,     lcgmbin, lcgmchr, lcgmclt     unicgm.cgm                    
Text                                                                                      

Zum Ausgeben auf einen gewählten Drucker ist das Kommando lpr einzugeben, z.B. lpr -Phpdj unirast.rdb im Falle des Druckers HPDeskJet 500C.[14]

Zur Illustration einer Anwendung folgt hier ein FGL/AGL-Beispielprogramm:

C

C DARSTELLUNG VON LOGARITHMISCHEN KURVEN

C

C DATEN, KONSTANTEN

- - - - -

C DEFINITION DES GERÄTETREIBERS UND ÖFFNEN VON UNIRAS

CALL GROUTE(' ')

CALL GOPEN

C DEFINIEREN DER BENUTZERKOORDINATEN UND DES VIEWPORT

CALL GLIMIT(XMIN,XMAX,YMIN,YMAX,0.,0.)

CALL GRPSIZ(XSIZMM,YSIZMM)

XSIZE = 0.55 * MIN(XSIZMM,YSIZMM)

YSIZE = XSIZE

XORG = (XSIZMM-XSIZE)/2.

YORG = (YSIZMM-YSIZE)/2.

CALL GVPORT(XORG,YORG,XSIZE,YSIZE)

C DEFINIERE ASPEKTVERHÄLTNIS UND AKTIVIERE BENUTZERKOORDINATEN

XLEN = XSIZE/MIN(XSIZE,YSIZE)

YLEN = YSIZE/MIN(XSIZE,YSIZE)

CALL GWBOX(XLEN,YLEN,0.)

CALL GSCALE

C ZEICHNE ACHSEN UND KURVEN

CALL RAXAXL(2,9999,9999,0.5)

- - - - -

DO 100 I =1, NCURVE

DO 200 J = 1,NPOINT

- - - - -

XARR(J) = ALOG10(TRANS)

200 YARR(J) = ALOG10(FREQR)

100 CALL GVECT(XARR,YARR,NPOINT)

C SCHLIESSEN VON UNIRAS

CALL GCLOSE

END

Abb. 6:

Ausgabe des obigen Programms. Es ist das verkürztes Programm

axi004.f in /usr/lib/uniras/6v3b/

example/fgl .

Bemerkungen zum Ablauf des Beispiel-Programms:

Mit GROUTE wird der verwendete Gerätetreiber als Zeichenkette in der Form: Device Name ; EXit definiert, z.B. d php7475a4; exit. Bei Angabe eines Leerstrings kann man während der Programmausführung diese Spezifikation machen, sodaß mehrere verschiedene Ausgaben bei einem Programm erstellt werden können. Für weitere Angaben bei GROUTE wird auf die entsprechende Beschreibung verwiesen. Alle Größenangaben in UNIRAS, z.B. Höhe oder Längen, erfolgen in der Einheit mm. Der durch den Aufruf GVPORT definierte Viewport (Darstellungsbereich) ist ein Bereich innerhalb der für das gewählte Gerät insgesamt zur Verfügung stehenden Zeichenfläche.

Für die Bibliothek agx/Toolmaster stehen entsprechende Routinen zur Verfügung, z.B. XuDeviceSelect für GROUTE. Allerdings kann hier diese Routine entfallen, da die Ausgabe auf X-Window hier standardmäßig erfolgt.

6.4.5. NAG GRAPHICS LIBRARY

NAG GRAPHICS LIBRARY ist ein Unterprogramm-System für FORTRAN, das auf verschiedenen UNIX-Plattformen und IBM kompatiblen PC's vom URZ im Rahmen der Campus-Lizenz für NAG LIBRARY angeboten wird. Dieses System stellt dem Benutzer eine sehr vielseitige und umfassende mathematische und statistische 2D/3D-Unterprogrammsammlung für technisch-wissenschaftliche Anwendungen zur Verfügung. U.a. werden folgende Anwendungen erfaßt (mit den Anfangsbuchstaben der entsprechenden Aufrufe):

Achsen, Gitter, Rahmen, Titel               J06A..        
Punkt / -Linienplots                        J06B..        
Kurven-Zeichnungen                          J06C..        
Gewöhnliche Differentialgleichungen         J06D..        
Allgemeine Funktionen                       J06E..        
Spezielle Funktionen                        J06F..        
Konturen                                    J06G..        
Oberflächen                                 J06H..        
Präsentations Graphik                       J06J..        
Darstellung von Vektor-Feldern              J06K..        
Statistische Graphik                        J06S..        
Kontroll-Routinen                           J06W..        
Funktionen zum Setzen von Attributen        J06X..        
Zeichnung von Graphik-Primitiven            J06Y..        

Zur Ausgabe stehen z.Z. im URZ folgende Möglichkeiten zur Verfügung:

Ausgabe auf GKS fuer X-Window + CGM (Binär)

Ausgabe auf PostScript (s/w)

Ausgabe auf CALCOMP-Schnittstelle (MVS-Plotter)

Ausgabe auf HPGL

Ausgabe auf Line-Printer

Ausgabe auf X-Window erfolgt mit: xlf -lnaggl -lnaggks -lnag -lgksco -lgP -o Programm Programm.f Parallel mit der X-Ausgabe erfolgt eine Ausgabe auf die CGM-File GKS01.cgm (Binär). Weiterverarbeitung mit UNIRAS (uniedit, PICTURE MANAGER) ist möglich.

Ausgabe auf PostScript mit: xlf -lnaggl -lnagps -lnag -o Programm Programm.f Beim Ausführen dieses Programms wird die PostScript-Datei fort.7 im aktuellen Verzeichnis angelegt (A4-Format).

Ausgabe auf die CALCOMP-Schnittstelle (MVS-Plotter) mit: xlf -lnaggl -lnagcal -lnag -lcalcdrv -o Programm Programm.f Es wird eine Datei Plot.in.MVS im aktuellen Verzeichnis erzeugt, die mit dem Kommando mvsplot auf den gewünschten MVS-Plotter ausgegeben werden kann. Die maximale Länge der Zeichnungen beträgt 20 cm.

Ausgabe auf HPGL mit: xlf -lnaggl -lnaghpg -lnag -o Prgramm Programm.f Es wird die HPGL-Datei fort.7 im aktuellen Verzeichnis im A4-Format erzeugt.

Ausgabe auf den Line-Printer mit: xlf -lnaggl -lnaglpr -lnag -o Programm Programm.f Es erfolgt Ausgabe auf die Standard-Ausgabe und mittels Ausgabe-Redirektion kann die entsprechende Ausgabe-Datei auf den geeigneten Zeilendrucker ausgegeben werden kann (vergl. auch xhilfe, Menüpunkt Verfügbare Drucker). Ein kleines Beispielprogramm diene als Illustration:

PARAMETER (NMAX=12)

DOUBLE PRECISION UMAX /1./, UMIN /0./, VMAX /1./, VMIN /0./

DOUBLE PRECISION A(NMAX) /12.37,6.55,8.99,-2.4,5.66,7.23,

* 18.53,-3.33,2.45,1.11,0.01,2.96)

INTEGER N /12/

LOGICAL DRSET /.TRUE./, VERTCL /.TRUE./

C AUSWAHL DER AUSGABE-EINHEIT - FÜR ALLE TREIBER GLEICH

CALL XXXXXX

C INITIALISIEREN VON NAG GRAPHICS UND SETZEN DES VIEWPORTS

CALL J06WAF

CALL J06WCF(UMIN,UMAX,VMIN,VMAX)

C SETZE AUSGABEATTRIBUTE FÜR BALKENGRAFIK UND GEBE AUS

CALL J06XKF(3,2,1,1,1)

CALL J06XMF(0.33D0)

CALL J06JMF(A,12,VERTCL,DRSET,0)

C BILDÜBERSCHRIFT

CALL J06AHF('J06JMF Example Plot')

C Terminiere NAG GRAPHICS

CALL J06WZF

END

Abb. 7:

Ausgabe des obigen Programms. Das Beispiel ist aus den Routinen für Präsentationsgrafik ent-

nommen (verkürzt).

In /usr/local/demos/nag finden sich viele Beispiele und entsprechende Aufrufprogramme.

6.4.6. TW GRAPH - ein Präsentationsgrafiksystem

TW GRAPH ist ein FORTRAN-Unterprogrammsystem zur Erzeugung von Prasentationsgrafiken, wie sie besonders im technisch-wissenschaftlichen Anwendungsbereich gebräuchlich sind. Unterstützt werden Darstellungen von 2D- Daten, z.B. Punktemengen, Kurven und Histogramme, und von Funktionen z = f(x,y) in der Form von Niveaulinien- und 3D-Projektionsdarstellungen. Darüberhinaus ist es möglich, beliebige Liniengrafiken aus Linienzügen zusammenzusetzen. Um die Anwendungen so einfach wie möglich zu machen, geht TW GRAPH zunächst von Voreinstellungen aus, die bei den meisten Anwendungen ausreichend sind. Ein Standardbild hat die Größe DIN A4 und stellt Daten in einem Achsensystem mit geeigneten Skalen dar. Für die Ausgabe in AIX werden drei Schnittstellen, nämlich GKS, PostScript und MVS-Plotter, unterstützt.

GKS-Schnittstelle

Es kann jede der GKS-Norm entsprechende GKS-Implementierung verwendet werden. Zur GKS-Implementierung im URZ wird auf die entsprechende Beschreibung in diesem Kapitel verwiesen. Die Aufrufe von TW GRAPH werden dabei zu Beginn und Ende von GKS in die entsprechenden GKS-Aufrufe eingeschlossen. Mit GKS ist Ausgabe auf X oder/und auf CGM (Binär) möglich. Die CGM-Ausgabe kann z.B. mit UNIRAS (uniedit oder PICTURE MANAGER) weiterverarbeitet werden. Das Schema sieht folgendermaßen aus:

CALL GOPKS(6,0) <--- OPEN GKS

CALL GOPWK(1,1,1) <-- OPEN WORKSTATION (X-Ausgabe)

[ CALL GOPWK(1,1,5) <- OPEN WORKSTATION (CGM) ] [15]

CALL GACWK(1) <-- ACTIVATE WORKSTATION

C

(TW GRAPH - Aufrufe einschließlich ENDPLT)

C

CALL GDAWK(1) <-- DEACTIVATE WORKSTATION

CALL GCLWK(1) <-- CLOSE WORKSTATION

CALL GCLKS <-- CLOSE GKS

Mit GKS stehen damit auch die entsprechenden Eingabe-Aufrufe (bei X-Ausgabe), d.h. interaktive Grafik zur Verfügung. Kompilieren und Linken eines Programms in FORTRAN geschieht mit: xlf -lgksdrv -ltwg -lgksco -lgP -o Programm Programm.f

PostScript-Schnittstelle

Standardmäßig ist die Ausgabefläche auf Din-A4-Format (29.7x21.0 cm) beschränkt, kann aber durch den TW GRAPH-Aufruf DPSIZE entsprechend geändert werden. Die meisten Ausgabegeräte benötigen einen Rand, sodaß die tatsächlich verfügbare Fläche meistens kleiner als DIN-A4 ist. Die Koordinatenachsen sind wie folgt definiert: Der Ursprung liegt in der linken unteren Ecke, die x-Achse verläuft von links nach rechts parallel zur langen Seite (Druckervorschubrichtung), die y-Achse verläuft von unten nach oben parallel zur kurzen Seite. Kompilieren/lLinken eines Programms in FORTRAN geschieht mit: xlf -ltwgpost -ltwg -o Programm Programm.f Durch den Aufruf des Programms Programm wird die PostScript-Datei PSC1 im aktuellen Verzeichnis erzeugt. FORTRAN-Einheiten 98 und 99 sind reserviert.

Schnittstelle MVS-Plotter

Kompilieren/Linken eines TW GRAPH-Programms in FORTRAN geschieht mit xlf -lcalcpost -ltwg -o Programm Programm.f Mit dem Aufruf des Programms Programm wird die Datei Plot.in.MVS im aktuellen Verzeichnis erzeugt, die mit dem Kommando mvsplot auf dem ausgewählten MVS-Plotter ausgegeben wird[16]

C-Interface zu TW GRAPH

Mit einem von Herrn Jörg Schön erstellten Interface ist es möglich, TW GRAPH auch unter der Programmiersprache C ablaufen zu lassen. Makefiles, Beschreibung und Beispiele dazu findet man in: /usr/local/demos/twg/flib2c Ein einfaches Beispielprogramm von TW GRAPH diene als Illustration:

REAL X(10),Y(10)

DATA X(1) /0.5/, Y(1) /2.118/, X(2) /1.5/, Y(2) /1.187/,

* X(3) /3.0/, Y(3) /0.648/, X(4) /5.0/, Y(4) /0.381/,

* X(5) /7.0/, Y(5) /0.248/, X(6) /9.5/, Y(6) /0.150/

C GLATTE KURVE DURCH DIE DATENPUNKTE ZEICHNEN

CALL PDATA(5,6,X,Y)

C DATENPUNKTE MARKIEREN

CALL PDATA(0,6,X,Y)

C BILDÜBERSCHRIFT

CALL PTITLE('BEISPIEL',1.1)

C ACHSENBESCHRIFTUNGEN

CALL PXTEXT('SEKUNDEN')

CALL PYTEXT('AMPLITUDE')

C TERMINIEREN

CALL ENDPLT

END

Abb. 8:

Ausgabe des obigen

Programms. Es wird eine

Grafik mit skalierten Achsen und Rahmen erzeugt.

Weitere Beispiele und Makefiles zu TW GRAPH findet man in: /usr/local/demos/twg

6.4.7. URZ Standard Plot-Bibliothek

Diese Grafik-Bibliothek entspricht der Grafik Standardbibliothek in MVS mit Ausnahme der BENSON-Aufrufe[17]. Sie beruht auf der CALCOMP-Schnittstelle, auch als ISPI-Schnittstelle (Industry Standard Plotting Interface) bezeichnet, die aus folgenden Basis-Routinen besteht:

PLOTS Initialisiert die Grafik-Software

NEWPEN Kennzeichnet die aktuelle Farbe

SYMBOL Zeichnet Text

PLOT Zeichnet Linien, beendet die Grafik-Software

Drei Ausgabeschnittstellen stehen zur Verfügung: PostScript, GKS und Ausgabe auf die MVS-Plotter.

PostScript-Ausgabe

Standardmäßig ist dabei die Ausgabefläche auf ein DIN-A4-Format (29.7x21.0 cm) beschränkt, kann aber durch den Aufruf FACTOR oder XXDPSZ entsprechend verändert werden, im übrigen wird auf die Besprechung der PostScript-Ausgabe bei der Bibliothek TW GRAPH verwiesen. Kompilieren/lLinken eines Programms in FORTRAN geschieht mit: xlf -lcalcpost -lcalcsub Programm.f -o Programm Beim Aufruf der erstellten Programms Programm wird eine PostScript-Datei PSC1 im aktuellen Verzeichnis erzeugt. FORTRAN-Einheiten 98 und 99 sind reserviert.

Zusätzlich zu den CALCOMP- und URZ-Routinen stehen hier - besonders im Hinblick auf die Verwendung bei PostScript - folgende Unterprogramme zur Verfügung, die vor dem ersten Aufruf von PLOT verwendet werden:

XXDPBR(IPBORD) IPBORD = 0 (Kein Rand, Standard, sonst = 1)

XXDPSZ(XSIZE,YSIZE) Länge der Seite in x-Richtung (Standard: 29.7 cm)

bzw. Länge in y-Richtung (Standard 21.0 cm)

XXROT(IVROT) IVROT = 0 Keine Rotation (Standard), sonst = 1

SLWDTH(LWDTH) Linienbreite; LWDTH = 1 (Standard, 0.16 mm)

FLAREA(N,X,Y,IPAT) Zeichnen einer Hintergrundfläche mit

N Anzahl der Vertizes der Fläche

X,Y Koordinaten der Vertizes

IPAT Grau-/Farbmuster mit

1,2, ... 8 Graustufen (8 am hellsten)

-1,-2, ... -8 Farben (-1 entspricht schwarz)

Schnittstelle GKS

Das grafische Kernsystem (GKS) in der Implementierung bei AIX Personal graPHIGS - vgl. den entsprechenden Abschnitt -, wird verwendet, um Ausgabe auf X und auf CGM-File (Binär) zu erzeugen. Der Aufruf in FORTRAN lautet: xlf -lcalcgks -lcalcsub -lgksco -lgP -o Programm Programm.f Es wird zusätzlich zur Ausgabe auf X eine CGM-File (Binär) namens GKS99.cgm erzeugt, die z.B. mit UNIRAS (uniedit oder PICTURE MANAGER) weiterverarbeitet werden kann. Zum Schema der Programm-Aufrufe vgl. oben bei der PostScript-Ausgabe. Bei Angabe von PLOTS(0,0,99) werden Koordinaten im Bereich (0,xmax,0,ymax)=(0,88.,0,88.) verwendet, bei PLOTS(xmax,ymax,99) analog.

Ausgabe auf MVS-Plotter

Kompilieren/Linken eines Programms in FORTRAN geschieht mit: xlf -lcalcdrv -lcalcsub Programm.f -o Programm Mit dem Aufruf des erzeugten Programms Programm wird eine Datei Plot.in.MVS erzeugt, die mit dem Kommando mvsplot auf einem ausgewählten MVS-Plotter ausgegeben werden kann. Es erfolgt keine Prüfung der maximalen Längen (xmax,ymax) in cm für die ausgewählten MVS-Plotter (200,88 für den Stift-bzw. Rasterplotter und 28.5,20 für die DIN4-Drucker). Ein Beispielprogramm folgt:

C BEREITSTELLUNG DER FELDER FÜR X- UND Y-WERTE UND SKALIERUNG

DIMENSION X(102), Y(102)

DATA X(1) /0./, Y(1) /0./, X(100) /2./, Y(100) /0./

C INITIALISIEREN DER SOFTWARE

CALL PLOTS(0,0,99)

C FESTLEGEN EINES NEUEN NULLPUNKTES

CALL FINIM(5.,5.)

C DATENEINGABE FÜR SINUS-KURVE

DO 10 I=1,99

X(I)=X(I-1)+0.02

10 Y(I)=SIN(X(I)*3.145)

C SKALIERUNG FÜR 20 CM X-ACHSE UND 10 CM Y-ACHSE

CALL SCALE2(X,20.,100,1)

CALL SCALE2(Y,10.,100,1)

C ZEICHNEN DER ACHSEN, KURVE UND BESCHRIFTUNG DER X-ACHSE

CALL AXIS2(0.,5.,'X-ACHSE',-7,20.,X(101),X(102))

CALL AXIS2(0.,0.,'Y-ACHSE',7,-10.,90.,Y(101),Y(102))

CALL LINE(X,Y,100,1,0,0)

CALL SYMBOL(21.,4.5,0.25,'*PI',0.,3)

C TERMINIERUNG DER PLOT-SOFTWARE

CALL FINTRA

END

Abb. 9:

Ausgabe des obigen

Beispielprogramms.

Weitere Beispiele und Makefiles zur URZ Standard-Software findet man in: /usr/local/demos/calcomp

Literatur zu Abschnitt 6.4 (Auswahl)

The graPHIGS API: Introducing, Understanding Concepts

The graPHIGS API: Subroutine Reference, ISO PHIGS Subroutine Reference

The graPHIGS API: User's Guide User's Guide, Subroutine Reference for GKS-CO

Computer Graphics Interface Toolkit/6000 - Programming Concepts and Reference

Computer Graphics Plotting System/6000 - Programming Concepts and Reference

Graphics File Translator/6000 - Programming Concepts and Reference FGL/AGL User Guide and Reference Manuals

agX/TOOLMASTER User Guide and Reference Manuals

Handbook for the NAG GRAPHICS LIBRARY

NAG GRAPHICS LIBRARY - Concise Reference

TW GRAPH-Ein Präsentationsgrafiksystem für techn.-wissenschaftl. Anwendungen

Standard-Software und graphische Systeme für die Plotter am URZ Heidelberg

6.5. Public Domain Grafikprogramme

Neben der Grafik-Software, die auf den verschiedenen Plattformen (MVS, PC, UNIX, VM/CMS) des URZ vorhanden ist und der Software-Verteilung im Rahmen der Campuslizenzen des URZ gibt es auch im Grafik-Bereich weitere Möglichkeiten, Software zu erhalten, nämlich Public Domain Software. Eine entsprechende Server-Adresse kann man z.B. über das Programm xarchie (linke Maustaste/ Menüpunkt Kommunikation) erhalten. Zur Netzentlastung bitte zunächst bei den lokalen Servern sun0 bzw. ftp.uni-stuttgart.de nachschauen.

Neben den bereits in Abschnitt: Hilfsmittel bei der täglichen Arbeit angeführten Public Domain Programmen sind in der folgenden Tabelle weitere Programme allgemeinerer Art angeführt. Ausführlichere Beschreibung findet man in (x)hilfe.

Aufruf                        Beschreibung                    Info durch / in         
gnuplot                       Interaktives Programm zum       man                     
                              Erzeugen von 2D/3D Plots                                
gplot                         Interpretiert CGM (Binär,       man                     
                              Text), Ausgabe auf X, PS                                
ImageMagick -  verschiedene   Bildverarbeitung,               /usr/local/demos/Image  
Programme                     Format-Umwandlung, Animation    Magick/                 
xgraph                        Einfaches Batch-Programm zur    man                     
                              Darstellung von 2D-Plots                                
xmgr                          Menü-gesteuertes Zeichen-       man                     
                              programm für 2D-Diagramme                               
rayshade                      Raytracing Programm             /usr/local/demos/raysh  
                                                              ade                     
vogle - Unterprogramm-        2D/3D-Grafikdarstellung für     /usr/local/demos/vogle  
Bibliothek18                  FORTRAN und C                                           
xfig                          Grafischer Editor unter X für   man                     
                              einfache 2D-Objekte                                     
xpaint                        Bitmap/Pixmap-Editor            man                     

6.6. Hardcopy (Grafikausgabe)

Folgende Ausgabe-Möglichkeiten stehen z.Z. im URZ zur Verfügung: ^

Grafik-Formate        Welche Drucker oder   UNIX-Kommando           Bemerkungen            
                      Geräte                                                               
PostScript            QMS-PS 1700, 600      lpr -Pps filename lpr   s/w                    
                      dpi, DIN A4           -Ppsdup filename                               
PostScript            IBM3820 240 dpi,      psi                     s/w                    
                      DIN A4                                                               
PostScript            COMPAREX-6890, 240    psi                     s/w                    
                      dpi, DIN A4                                                          
PostScript            Farbdiabelichter im   lpr -Pdia filename,     DIN A4 mit             
                      Theoretikum, Abt.     der filename ist von    Hochformat, Rand       
                      Film-Foto-Grafik.     der Form *.ps           bitte vorsehen.        
HPGL                  QMS-PS 1700, 600      lpr -Pgl filename       s/w                    
                      dpi, DIN A4                                                          
HPGL                  HP7475A im PC-Pool    am Platz usr008 ftp     farbig                 
                      Platz usr008,         von AIX,  dann copy                            
                      A4-Format             filename /b com1                               
PCL                   QMS-PS 1700, 600      lpr -Ppcl filename      s/w                    
                      dpi, DIN A4           lpr -Ppcldup filename                          
HPDeskJet             HPDeskJet 500C, 300   lpr -Phpdj filename     farbig,  Gutscheine    
                      dpi, DIN A4                                   nötig                  
MVS-Plotter-Format    MVS-Plotter -         mvsplot                 Benutzernummer in      
                      Stift-,                                       MVS notwendig          
                      Rasterplotter