Article View: dnet.graphik
Article #73Re: GKS-Implementierung fuer PC's unter MS-DOS
From: Ruediger Kolb
Date: Tue, 30 Jan 1990 07:34
Date: Tue, 30 Jan 1990 07:34
390 lines
12993 bytes
12993 bytes
------------------------------------------------------------------------------
Date: 29 Januar 1990 8:07:14 CET
From: Arnold Schick <SCHICK@DMRHRZ11.BITNET>
Subject: GKS-Implementierung fuer PC's unter MS-DOS
Comments To: GRAFIK-L@DEARN.BITNET SCHICK@DMRHRZ11.BITNET
Hallo liebe Mitglieder der Diskussionsliste GRAFIK-L,
Frau Selig von der ETH Zuerich fragte nach einer GKS-Implementierung
fuer PC's unter MS-DOS. Hier in Marburg benutzen wir die Implementierung
von der Firma GTS-GRAL in D-6100 Darmstadt Friedberger-Str. 25.
Zu diesem Softwareprodukt habe ich ein Papier (EINZELSCHRIFT) erstellt.
Anbei stelle ich Ihnen diese EINZELSCHRIFT informationshalber auch zur
Verfuegung:
HRZ MARBURG 01.09.89 MIKROCOMPUTER
EINZELSCHRIFT GKSGRAL
GKSGRAL
Das Land Hessen hat fuer das Softwareprodukt GKSGRAL eine
Campus-Lizenz erworben. Mit dem Vertrieb dieses Software-
produktes in der Philipps-Universitaet Marburg ist das Hoch-
schulrechenzentrum (HRZ) beauftragt. Eine Installation von
GKSGRAL auf einem Personal-Computer wird auf Anforderung
durch den Betreuer vorgenommen, dies schliesst eine Kurzein-
weisung des Anwenders mit ein.
In dieser EINZELSCHRIFT werden die Anwendungen von GKSGRAL
kurz aufgefuehrt, die Voraussetzungen fuer den Einsatz von
GKSGRAL aufgelistet und eine Anwendung anhand eines
Beispiels gezeigt.
Name
GKSGRAL (Graphical Kernel System von GTS-GRAL) 7.4
Level 2b
Zweck
Anwenderlibraries mit FORTRAN77 Unterprogrammen zur Ent-
wicklung rechner- und geraeteunabhaengiger Anwendersoft-
ware fuer passive und interaktive Graphik.
Schluesselwoerter
Computergraphik, passive Graphik, interaktive Graphik,
graphische Grundfunktionen, 2D-Graphik
Beschreibung
GKSGRAL ist eine GKS Implementation des nationalen (DIN
66252) und internationalen Standards (ISO 7942) fuer
Computergraphik. Im GKS-Standard sind rechner- und
geraeteunabhaengige graphische Grundfunktionen als
FORTRAN77-Unterprogramme (Unterprogrammname, Parameter)
definiert; GKSGRAL stellt diese Unterprogramme (ca. 350)
in Libraries zur Verfuegung. Bei der Entwicklung von grap-
hischen Anwendungsprogrammen, koennen diese Unterprogramme
beim Binden (vgl. LINK Command) einbezogen werden.
Die graphischen Grundfunktionen umfassen:
- Ausgabe graphischer Primitiver (POLYLINE, POLYMARKER,
TEXT, FILL AREA, CELL AREA).
- Steuerung der Darstellung graphischer Primitiver durch
Attribute (Linienart, Markierungstyp, Zeichenhoehe,
Muster, Farbe).
- Handhabung von Transformationen und Koordinatensyste-
men (WORLD, WINDOW, VIEPORT, normalisierte Devicekoor-
dinaten).
- Erzeugen und Manipulation von Segmenten (transformie-
ren, hervorheben, loeschen).
- Graphische Eingabe (lokalisieren, digitalisieren).
- Speichern und Interpretieren von Graphiken ueber Meta-
file.
- Abfrage (INQUIRE) von Geraeteeigenschaften und GKS-
Zustaenden (z.B. Werte von Attributen).
- Fehlerbehandlung.
Anbieter
GTS-GRAL Graphische Standards fuer Computer-Systeme GmbH,
Darmstadt
Umgebung
Ein Anwenderprogramm, das GKS Unterprogrammaufrufe in der
richtigen Art und Reihenfolge enthaelt, ist von Ihnen zu
entwickeln (Edieren des Quelltextes, Compilieren und
Binden des Programms). Der Quelltext kann in der
Programmiersprache formuliert sein, die Aufrufe von
FORTRAN77 Unterprogrammen auf dem Personal-Computer
unterstuetzt (z.B. MS-FORTRAN, Profesional FORTRAN, MS-
Pascal, MS-C). Beim Compilieren ist die Groesse des
Speicherplatzes fuer die INTEGER und LOCICAL Variablen auf
2 Byte festzulegen (z.B. $STORAGE:2 bei MS-FORTRAN).
Beim Binden sind die GKSGRAL-Libraries mit anzugeben. Ihr
ausfuehrbares Programm ist dann zu starten.
Die graphische Ausgabe ist auf dem Bildschirm oder auf
einem Plotter, und die Eingabe z.Z. nur ueber Tastatur
moeglich. Die permanente Abspeicherung von Graphiken wird
mit dem Metafile realisiert; im Anwenderprogramm ist dazu
der Workstation-Type und die Connection-id im GOPWK
Aufruf zu waehlen:
Workstation-Type Connection-id
Bildschirm: 171 2
HP-Plotter 7475 DIN A4: 4011 fuer COM1: 1, COM2: 2
HP-Plotter 7475 DIN A3: 4012 fuer COM1: 1, COM2: 2
HP-Plotter 7550 DIN A4: 4121 fuer COM1: 1, COM2: 2
HP-Plotter 7550 DIN A3: 4122 fuer COM1: 1, COM2: 2
Metafile OUTPUT: 4 3
Metafile INPUT: 5 4
Zur graphischen Ausgabe auf einem Plotter, sind
zusaetzliche Unterprogramme einzubinden (siehe Beispiel).
Die FORTRAN Unit-Numbers 7, 8 und 9 duerfen im Anwender-
programm nicht benutzt werden.
Fuer die graphische Ausgabe auf dem Bildschirm ist beim
Booten des Personal-Computers ein Device-Treiber fuer den
Bildschirm zu laden; ein EGA Bildschirm erfordert z.B.
die folgende Anweisung im File CONFIG.SYS:
DEVICE = C:\GTSGRAL\DISPLAY\EGADEV.SYS
Die graphische Ausgabe auf einem Plotter erfordert die
Ausfuehrung des DOS-Commands MODE (z.B. MODE
COM1:9600,n,8,1,p) vor dem Start des Programms.
Installation
Die Voraussetzungen fuer die Installation von GKSGRAL auf
einem Personal-Computer sind:
Personal-Computer: IBM PS/2, IBM-PC/AT, IBM-PC/XT, M24,
Kompatible; COM Port fuer den Plotter.
Betriebssystem: PC-DOS ab 2.0, MS-DOS ab 3.0
Bildschirm: Farbgraphikbildschirm (EGA-, CGA-, Herkules-
oder VGA-Bildschirm im EGA-Modus)
Plotter: HP 7475, HP 7550, (Kompatible mit HP-GL),
fotografische Reproduktion des Bildschirmin-
halts)
Hauptspeicher: abhaengig von der Groesse des Anwender-
programms, >= 512 KByte (vgl. CHKDSK
Command)
Speicherplatzbedarf fuer die GKSGRAL Libraries: 1,5 MByte
Diskettenbedarf fuer die GKSGRAL Libraries beim Backup:
5 1/4" DSDD 5 1/4" DSHD 3 1/2" DSHD
5 2 2
Es koennen Libraries installiert werden, die GKSGRAL
Unterprogramme enthalten, die mit MS-FORTRAN 3.3 oder mit
Professional FORTRAN 1.0 compiliert wurden.
VORAUSSETZUNGEN
Neben den notwendigen Voraussetzungen zur Installation
gibt es weitere:
- Editor (z.B. WORD, WORDSTAR, etc.), mit dem der
Quelltext in einen File eingetragen werden kann;
- Compiler (MS-FORTRAN Version 3.3, Profesional FORTRAN
Version 1.0, MS-Pascal Version 3.3, MS-C Version 3.0)
der Ihr Anwenderprogramm uebersetzt;
- Binder (MS-Linker, Version 3.0), der die GKSGRAL
Unterprogramme in Ihr uebersetztes Programm einbindet;
- Programmierkenntnisse und etwas Programmiererfahrung.
Abweichungen und Erweiterungen
GKSGRAL hat gegenueber dem GKS Standard Abweichungen und
Erweiterungen .Z.B.:
- Unterprogramme, denen Strings uebergeben werden, erfor-
dern die Laenge des Strings als zusaetzlichen Parameter
und haben einen anderen Unterprogrammname (vgl. z.B.
GTX mit GTXS);
- zusaetzliche Unterprogramme (z.B. Initialisieren eines
GKS-Programms, Zeichnen eines Kreises, Interpolieren)
koennen das praktische Arbeiten erleichtern; das Unter-
programm zum Zeichnen von Umlauten ist noch nicht
implementiert.
Dokumentation
Zu GKSGRAL auf dem Personal-Computer ist folgendes
Handbuch verfuegbar (erwerbbar im Sekretariat des HRZ's):
GKSGRAL User and Reference Manual FORTRAN
Dieses Handbuch ist zum Arbeiten mit GKSGRAL erforder-
lich, kann jedoch durch andere GKS-Dokumentationen oder
GKS-Beschreibungen ersetzt werden (da GKS
ein Standard ist); z.B:
Bechlars, J., R. Buhtz: 'GKS in der Praxis'
Berlin Heidelberg New York Tokyo 1986
Betreuer
Arnold Schick
Beispiel
Machen Sie sich bitte mit dem folgenden in MS-FORTRAN
formulierte Programm vertraut; es soll ein gefuelltes,
eingerahmtes Quadrat zeichnen und in der Mitte ein
Diagramm mit Beschriftung symbolisieren:
$storage:2
$nodebug
PROGRAM BEISPIEL
C Vereinbarungsteil
INTEGER WORKST, CONID, WTYPE, FLAGS(13), ANTWOR
INTEGER STATUS, CHOICE
REAL XRAHME(5), YRAHME(5), XWERTE(30), YWERTE(30)
REAL POLYMX(9), POLYMY(9), DELTA, TMAT(2,3), PI
CHARACTER*11 SATZ
DATA XRAHME /0.0,1.0,1.0,0.0,0.0/
DATA YRAHME /0.0,0.0,1.0,1.0,0.0/
DATA POLYMX /0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9/
DATA POLYMY /0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9/
DATA FLAGS /1,1,1,1,1,1,1,1,1,1,1,1,1/
DATA PI /3.14159/
C Anweisungsteil
WRITE (*,*) 'Bitte Ausgabegeraet fuer Graphik
+ bestimmen :'
WRITE (*,*) ' Graphikbildschirm : 1'
WRITE (*,*) ' Plotter HP7475, COM1 : 2'
WRITE (*,*) ' Plotter HP7475, COM2 : 3'
READ (*,*) ANTWOR
GOTO (1,2,3) ANTWOR
GOTO 5
1 WTYPE = 171
CONID = 6
GOTO 6
2 WTYPE = 4011
CONID = 1
GOTO 6
3 WTYPE = 4011
CONID = 2
GOTO 6
5 STOP 'dieses Programm sieht das gewaehlte
+ Ausgabegeraet nicht vor'
6 CONTINUE
C Initialisierung von GKS
OPEN(20,FILE='GKSERR.DAT',STATUS='NEW')
CALL GOPKS(20,-1)
WORKST = 2
CALL GOPWK(WORKST,CONID,WTYPE)
CALL GACWK(WORKST)
CALL GSELNT(0)
CALL GSASF(FLAGS)
C Erstellen der Graphik
C Fillarea
IF (WTYPE .EQ. 171) THEN
CALL GSFAIS(1)
CALL GSFACI(2)
CALL GFA(5,XRAHME,YRAHME)
ENDIF
C Rahmen
CALL GSPLCI(1)
CALL GSLN(1)
CALL GPL(5,XRAHME,YRAHME)
C Segment 1 kreieren und transformieren
CALL GEVTM(0.0,0.0,0.25,0.25,0.0,0.5,0.5,1,TMAT)
CALL GCRSG(1)
CALL GSSGT(1,TMAT)
C Polymarker
CALL GSPMCI(3)
CALL GSMK(2)
CALL GSMKSC(1.0)
CALL GPM(9,POLYMX,POLYMY)
C Polyline
XWERTE(1) = 0.0
YWERTE(1) = 0.0
DELTA = 1.0/30.0
DO 20 K = 2,4
DO 10 I = 2,30
XWERTE(I) = XWERTE(I-1) + DELTA
YWERTE(I) = XWERTE(I) ** K
10 CONTINUE
CALL GSLN(K)
CALL GSPLCI(K+2)
CALL GPL(30,XWERTE,YWERTE)
20 CONTINUE
CALL GSPLCI(1)
CALL GSLN(1)
CALL GSLWSC(2.0)
CALL GPL(5,XRAHME,YRAHME)
C Schliessen des Segments 1
CALL GCLSG
C Segment 1 verschieben und drehen
CALL GACTM(TMAT,0.25,0.25,
+ 0.5, 0.5 ,PI,1.0,1.0,1,TMAT)
CALL GSSGT(1,TMAT)
C Text
CALL GSCHUP(0.0,1.0)
CALL GSCHH(0.05)
CALL GSTXAL(2,0)
CALL GSTXCI(1)
SATZ = 'Testausgabe'
CALL GTXS(0.5,0.9,11,SATZ)
CALL GSTXFP(2,0)
SATZ = 'HRZ Marburg'
CALL GTXS(0.5,0.8,11,SATZ)
SATZ = 'Abzisse '
CALL GTXS(0.5,0.125,11,SATZ)
CALL GSCHUP(-1.0,0.0)
SATZ = 'Ordinate '
CALL GTXS(0.175,0.5,11,SATZ)
C Beenden von GKS
CALL GRQCH(WORKST,1,STATUS,CHOICE)
CALL GDAWK(WORKST)
CALL GCLWK(WORKST)
CALL GCLKS
CLOSE(20)
STOP
END
Dieses Programm im File BEISPIEL.FOR ist mit dem MS-FORTRAN Compiler
Version 3.3 zu compilieren (der Compiler befindet sich auf Diskette
im Laufwerk A und der File mit dem Programm auf der Festplatte im
Subdirectory \GTSGRAL\MS\LIB):
A:FOR1 beispiel
A:PAS2
Nun sind die GKSGRAL-Unterprogramme in das vom Compiler erzeugte
Objekt-Programm mit Hilfe des MS-Linkers, Version 3.0 einzubinden
(der Linker befindet sich auch auf der Diskette im Laufwerk A):
A:LINK beispiel +GKBLCK +GKDDLK,,/SEGMENTS:1023,+
GKSGRAL+
PC74+
GKZ+
GKX+
A:MATH+
A:FORTRAN
Soll die Ausgabe auch auf einem am Port COM1: oder COM2: angeschlos-
senen Plotte HP7475 erfolgen, ist das Beispiel wie folgt zu binden:
A:LINK beispiel +GKBLCK +GKD40A,,/SEGMENTS:1023,+
GKSGRAL+
DRV40A+
PC74+
GKZ+
GKX+
A:MATH+
A:FORTRAN
Gestartet wird das Programm mit:
beispiel
Entsprechend, wie Sie das Programm gebunden und das gestartete Programm
bedient haben, wird die nachfolgende Graphik entweder
a) auf dem Bildschirm oder
b) auf dem angeschlossenen Plotter
ausgegeben.
Durch Druecken der ESC-Taste (Eing Loesch) wird das Programm fortgesetzt
und damit beendet.
--
Ruediger Kolb Phone: +49-2241-14-2644
GMD e-mail:
Postfach 1240 kolb@gmdzi
D-5205 Sankt Augustin kolb@f3.gmd.dbp.de
Technical Details
Message-ID:
<1930@gmdzi.UUCP>Path:
arc1-ca.pugleaf.net!gmdzi!kolbShow Full Headers
Complete Article Headers
X-Google-Language: GERMAN,ASCII-7-bit X-Google-Thread: 115c6e,e6588bb77d577bbc,start X-Google-Attributes: gid115c6e,public X-Google-ArrivalTime: 1990-01-29 23:34:22 PST Path: arc1-ca.pugleaf.net!gmdzi!kolb From: kolb@gmdzi.UUCP (Ruediger Kolb) Newsgroups: dnet.graphik Subject: Re: GKS-Implementierung fuer PC's unter MS-DOS Keywords: GKS Message-ID: <1930@gmdzi.UUCP> Date: 30 Jan 90 07:34:20 GMT Distribution: dnet Organization: GMD, Sankt Augustin, F. R. Germany Lines: 390 Approved: kolb@gmdzi.UUCP