diff options
author | Lars-Dominik Braun <lars@6xq.net> | 2019-02-11 11:49:19 +0100 |
---|---|---|
committer | Lars-Dominik Braun <lars@6xq.net> | 2019-02-11 11:49:39 +0100 |
commit | 98cab31fc3659e33aef260efca55bf9f1753164c (patch) | |
tree | f1affa84049ef9b268e6c4f521f000478b0f3a8e /app/mpg/1987/doc | |
parent | 71e2b36ccd05ea678e62e32ee6245df2b8d6ac17 (diff) | |
download | eumel-src-98cab31fc3659e33aef260efca55bf9f1753164c.tar.gz eumel-src-98cab31fc3659e33aef260efca55bf9f1753164c.tar.bz2 eumel-src-98cab31fc3659e33aef260efca55bf9f1753164c.zip |
Add source files from Michael
Diffstat (limited to 'app/mpg/1987/doc')
-rw-r--r-- | app/mpg/1987/doc/GDOKKURZ.ELA | 119 | ||||
-rw-r--r-- | app/mpg/1987/doc/GRAPHIK.doc.e | 2234 | ||||
-rw-r--r-- | app/mpg/1987/doc/PLOTBOOK.ELA | 660 |
3 files changed, 3013 insertions, 0 deletions
diff --git a/app/mpg/1987/doc/GDOKKURZ.ELA b/app/mpg/1987/doc/GDOKKURZ.ELA new file mode 100644 index 0000000..f8203f2 --- /dev/null +++ b/app/mpg/1987/doc/GDOKKURZ.ELA @@ -0,0 +1,119 @@ +#type ("hs")##limit (16.0)#
+#type ("prop3.3-24")# #center#*** MPG-GRAPHIK *** #block#
+
+#type ("prop7.5-16")#
+#on ("u")#Einleitung:#off ("u")#
+#type ("prop10-12")#
+
+ Das MPG-Graphik-System ist eine Sammlung von aufein-
+ ander aufbauenden Umgebungs- und Applikationspaketen, in
+ die auch die bisherige EUMEL-Graphik vollst„ndig integriert
+ ist.
+
+ Folgende Leistungsmerkmale zeichnen die MPG-Graphik aus:
+ - verbesserter und nun auch in der Paket-Hierarchie voll-
+ st„ndig Endger„tunabh„ngiger EUMEL-Graphik-Kern.
+ - umfassende Dokumentation der EUMEL-Graphik und des
+ MPG-Graphik-Systems.
+ - taskunabh„ngige und mehrbenutzerf„hige Ansteuerung der
+ Endger„te.
+ - normierte Ansteuerung der Endger„te auf unterster
+ Ebene.
+ - indirekte Graphik-Ausgabe.
+ - komfortable Steuerung der Graphik-Ausgabe.
+ - Vollst„ndige Untersttzung aller von der EUMEL-Graphik
+ vorgesehenen Leistungen:
+ - beliebig breite Linien
+ - frei definierbare Linientypen mit Erhalt des Musters
+ bei verketteten Linien
+ - Ansatzfreie verkettete Linien durch abrundung der
+ Enden.
+ - frei definierbare vektorielle Zeichens„tze in beliebiger
+ GrӇe und Rotation.
+ - schnelles Clipping an den Kanten der Zeichenfl„che.
+
+ Desweiteren:
+ - frei definierbare Farben in normierter RGB-Codierung.
+ - automatische Einstellung der EUMEL-Farben auf den
+ Endger„ten (abschaltbar).
+ - Automatische Pause nach Abschluá der Ausgabe
+ (abschaltbar, also auch unterbrechungslose Ausgabe
+ m”glich).
+ - šbereinanderzeichnen mehrerer Zeichnungen m”glich.
+ - leichte Anpassung und Integration neuer Endger„te bzw.
+ Endger„t-Typen.
+
+#type ("prop7.5-16")#
+#on ("u")#Applikationen:#off ("u")#
+#type ("prop10-12")#
+
+ - der komfortable mengesteuerte Funktionenplotter 'FKT'.
+
+ - die einfach zu programmierende 'TURTLE'-Graphik.
+
+ - der vollintegrierte dynamische Multispool-Manager 'PLOT'.
+
+ - das 'EUCLID'-System zur umfassenden graphischen
+ Funktions- und Kurvendiskussion (in Vorbereitung).
+
+ - der objektorientierte 2D-Graphik-Editor 'GED', auch zur
+ Zeichensatz-Erstellung (in PLanung).
+
+#type ("prop7.5-16")#
+#on ("u")#Zur EUMEL-Graphik:#off ("u")#
+#type ("prop10-12")#
+ - Es wurde die vorletzte Version der EUMEL-Graphik
+ (PICFILE-Typ: 1102) verwendet, da diese einen um-
+ fassenderen Objektumfang (neue Version: keine Hidden-
+ Lines und kein Zeichen in Weltkoordinaten) bietet.
+ Neuere PICFILEs (Typ: 1103) k”nnen mittels
+ 'GRAPHIK.Convert' in diesen Typ knvertiert werden.
+
+ - Fehler dieser Version (die auch in der neuen Version
+ auftreten) wurden weitgehend beseitigt bzw. in der teil-
+ weise neuerstellten Dokumentation vermerkt.
+
+ - Die Ausgabe von PICTUREs und PICFILEs wurde von den
+ Verwaltungspaketen ('picture' bzw. 'picfile') abgespalten,
+ so daá die Erzeugung von Graphiken auch in der
+ Paket-Hierarchie Endger„t-unabh„ngig m”glich ist.
+
+#type ("prop7.5-16")#
+#on ("u")#Zum Graphik-Tasksystem:#off ("u")#
+#type ("prop10-12")#
+ - Jede Task im 'GRAPHIK'-Zweig kann auf jedes Endger„t
+ direkt zugreifen, und aufgrund der normierten An-
+ steuerung der Endger„te k”nnen auch die (schnelleren)
+ Zeichnungs-Primitiva (Gerade ziehen, positionieren usw.)
+ bei Beachtung der Aufl”sung endger„tunabh„ngig
+ verwendet werden.
+
+ - Die indirekte Ausgabe von PICFILEs ist ber die Task
+ 'PLOT' m”glich, dabei kann ber das Netz auch auf
+ Endger„te anderer Stationen zugegriffen werden.
+
+#type ("prop7.5-16")#
+#on ("u")#Zur Ansteuerung der Endger„te:#off ("u")#
+#type ("prop10-12")#
+ Vor der Ausgabe ist mit 'select plotter' das Endger„t
+ einzustellen, auf das ausgegeben werden soll.
+ Die vom Graphik-System verwendeten Konstanten
+ ('drawing area' usw.) beziehen sich nunmehr auf das
+ eingestellte Endger„t.
+ Bei Verwendung der Zeichnungs-Primitiva ist zu beachten,
+ das diese nur am Endger„t-Kanal sinnvoll sind (die šber-
+ einstimmung von Endger„t- und Task-Kanal wird aus Zeit-
+ grnden jedoch nicht berprft).
+ Die Ausgabe von PICFILEs erfolgt automatisch richtig, d.h.
+ am Endger„t-Kanal direkt, ansonsten indirekt ber die
+ 'PLOT', die zur Ausgabe dynamische Kanal-Server erzeugt.
+
+#type ("prop7.5-16")#
+#on ("u")#Zur Mehrbenutzerf„higkeit:#off ("u")#
+#type ("prop10-12")#
+ Da die Task 'PLOT' fr alle Endger„te auch als Spooler
+ arbeitet, k”nnen Graphiken als PICFILEs von beliebig vielen
+ Benutzern von jeder Task im Graphik-Zweig aus erstellt
+ und ausgegeben werden (Soweit der Endger„t-Kanal nicht
+ direkt genutzt wird), 'PLOT' sorgt dann fr die sequentielle
+ Ausgabe auf dem jeweils zugeordneten Endger„t.
diff --git a/app/mpg/1987/doc/GRAPHIK.doc.e b/app/mpg/1987/doc/GRAPHIK.doc.e new file mode 100644 index 0000000..9ea40dd --- /dev/null +++ b/app/mpg/1987/doc/GRAPHIK.doc.e @@ -0,0 +1,2234 @@ +#type ("prop.lq")##limit (16.0)#
+#free(10.0)#
+#headoff##bottomoff#
+
+#type("prop.breit.lq")##center##on("u")#Dokumentation des MPG-Graphik-Systems#off("u")#
+
+#free(1.0)#
+#type("prop")##center#Version 2.1 vom 10.09.87
+
+#free(0.5)#
+#center#(c) 1987 Beat Jegerlehner & Carsten Weinholz
+
+#page#
+#type("prop")##center#Dokumentation des MPG-Graphik-Systems
+#type("8.5.klein")##center#Inhaltsverzeichnis
+#type("pica.lq")##free(1.0)#
+#type("prop")##limit(16.0)##linefeed(01.0)#
+#type("pica")##on("u")#Inhaltsverzeichnis#off("u")##type("prop.lq")#
+#free(0.5)#
+#type ("prop.lq")##limit (16.0)#
+ Teil 1: Komponenten des Graphik-Systems ................... 1
+ 1.0 GRAPHIK.Basis ................................ 1
+ 2.0 GRAPHIK.Configuration/GRAPHIK.Configurator ... 1
+ 3.0 GRAPHIK.Plot ................................. 1
+ Teil 1.1: Generierung der Graphik ......................... 2
+ Teil 1.2: Tasks des Graphik-Systems ....................... 3
+ 1.0 Task: 'GRAPHIK' .............................. 3
+ 2.0 Task: 'PLOT' ................................. 3
+ 3.0 Task: 'FKT' .................................. 4
+ Teil 2: Operationen der Basisgraphik ...................... 5
+ 1.0 Paket: 'transformation' ...................... 5
+ 2.0 Paket: picture ............................... 8
+ 3.0 Paket: 'picfile' ............................. 13
+ 4.0 Paket: 'devices' ............................. 17
+ Teil 2.1: Operationen des 'device interface' .............. 19
+ 1.0 Paket: 'device interface' .................... 19
+ Teil 2.2: Operationen zur Graphik-Ausgabe ................. 23
+ 2.0 Paket: 'basisplot' ........................... 23
+ 3.0 Paket: 'plot interface' ...................... 27
+ 4.0 Paket: 'plot' ................................ 29
+ Teil 3: Konfigurierung der Graphik ........................ 30
+ Teil 3.1: Der Graphik-Konfigurator ........................ 30
+ Teil 3.2: Erstellung der Konfigurationsdateien ............ 31
+ 1.0 Pseudo-Schlsselworte ........................ 32
+ 2.0 Pseudo-Prozeduren ............................ 34
+ Teil 4: Graphik-Applikationen ............................. 37
+ Teil 4.1: Der Funktionenplotter 'FKT' ..................... 37
+ 1.0 Allgemeines ber FKT ......................... 37
+ 2.0 Das FKT-Menue ................................ 37
+ 3.0 FKT-Menuepunkte .............................. 38
+ Teil 4.2: Die TURTLE-Graphik .............................. 44
+ 1.0 Paket: 'turtlegraphics' ...................... 44
+ Stichwortverzeichnis ....................................... XX
+#page(1)#
+#head on##bottom on#
+#bottom#
+#right#Seite %
+#end#
+#head#
+#type("prop")##center#Dokumentation des MPG-Graphik-Systems
+#type("8.5.klein")##center#Teil 1: Komponenten des Graphik-Systems
+#type("pica.lq")##free(1.0)#
+#end#
+#type("pica")##on("u")##ib(1)#Teil 1: Komponenten des Graphik-Systems#ie(1)##off("u")##type("prop.lq")#
+#free(0.5)#
+
+
+ Das MPG-Graphik-System besteht aus folgenden Komponenten:
+
+ #ib(1)#1.0 GRAPHIK.Basis#ie(1)#
+
+ 1.1 #ib(2," (1.1)")#PACKET transformation#ie(2,"")#
+ - Transformations- und Umrechnungsprozeduren zur Endger„t-
+ unabh„ngigen Abbildung von PICTURES bzw. PICFILES.
+
+ 1.2 #ib(2," (1.2)")#PACKET picture#ie(2,"")#
+ - Verwaltung des Datentyps PICTURE, der eine Bildebene objekt-
+ orientiert beschreibt.
+
+ 1.3 #ib(2," (1.3)")#PACKET picfile#ie(2,"")#
+ - Verwaltung des Datentyps PICFILE, der ein aus verschiedenen Bild-
+ ebenen (PICTURES) bestehendes Bild und seine (allgemeine) Abbildung
+ auf den Endger„ten beschreibt.
+
+ 1.4 #ib(2," (1.4)")#PACKET devices#ie(2,"")#
+ - Allgemeine Verwaltung der verschiedenen Endger„te.
+
+
+ #ib(1)#2.0 GRAPHIK.Configuration/GRAPHIK.Configurator#ie(1)#
+
+ 2.1 #ib(2," (2.1)")#PACKET deviceinterface#ie(2,"")#
+ - Bereitstellung der allgemeinen graphischen Basisoperationen, die
+ fr jedes Endgerat gleichartig vorhanden sind.
+ - Das 'deviceinterface' wird vom 'GRAPHIK.Configurator' bei Bedarf
+ durch geeignetes Zusammenbinden veschiedener Endger„t-
+ Konfigurationsdateien automatisch erzeugt.
+
+
+ #ib(1)#3.0 GRAPHIK.Plot#ie(1)#
+
+ 3.1 #ib(2," (3.1)")#PACKET basisplot#ie(2,"")#
+ - Bereitstellung der von der EUMEL-Graphik ben”tigten
+ Basisoperationen.
+
+ 3.2 #ib(2," (3.2)")#PACKET plotinterface#ie(2,"")#
+ - Paket zur Ansteuerung und Kontrolle der Endger„te.
+
+ 3.3 #ib(2," (3.3)")#PACKET plot#ie(2,"")#
+ - Ausgabeprozeduren fr PICTURES bzw. PICFILES fr alle Endger„te.
+#page#
+#type("pica")##on("u")##ib(1)#Teil 1.1: Generierung der Graphik#ie(1)##off("u")##type("prop.lq")#
+#free(0.5)#
+
+ Es wird zun„chst eine Task 'GRAPHIK' (o.„.) eingerichtet.
+ Das MPG-Graphik-Sytem befindet sich auf der Diskette 'GRAPHIK 2.1':
+
+ - archive ("GRAPHIK 2.1")
+ - fetch ("GRAPHIK.Install",archive)
+ - run ("GRAPHIK.Install")
+
+ 'GRAPHIK.Install' enth„lt ein Generierungsprogramm, das die weitere Generierung
+ des Graphik-Systems vornimmt.
+ Existiert auf dem Archiv eine Datei 'GRAPHIK.Configuration', so wird nachge-
+ fragt, ob das Graphiksystem hinsichtlich der anzusteuernden Endger„te neu-
+ konfiguriert('GRAPHIK.Configuration' also in Abh„ngigkeit von den ebenfalls
+ auf der Diskette vorhandenen Endger„t-Konfigurationsdateien neu erstellt
+ werden soll). Fehlt 'GRAPHIK.Configuration', so wird es zwangsl„ufig neu er-
+ stellt (siehe 'Neukonfiguration des Graphik-Systems', S. #to page ("newconf")#).
+ Mit der im Hintergrund ablaufenden Installation des Plotmanagers in der
+ (Sohn-)Task 'PLOT' (siehe 'Funktion von PLOT', S.#to page ("plotmanager")#) steht dann die Graphik allen
+ Sohntasks von 'GRAPHIK' zur Verfgung:
+
+ .
+ .
+ GRAPHIK
+ PLOT
+ FKT
+ EUCLID
+ user
+ usw.
+ .
+ .
+#page#
+#type("pica")##on("u")##ib(1)#Teil 1.2: Tasks des Graphik-Systems#ie(1)##off("u")##type("prop.lq")#
+#free(0.5)#
+
+
+ #ib(1)#1.0 Task: 'GRAPHIK'#ie(1)#
+
+ 'GRAPHIK' ist die Ausgangstask des Graphik-Systems; in ihr werden (s.o) die
+ einzelnen Graphikpakete insertiert, und stehen den Sohntasks zur Verfgung
+ (siehe 'Operationen der Basisgraphik', S. #topage("gfuncts")#). Zus„tzlich kann sie den Plot-
+ manager in der Task 'PLOT' kontrollieren
+
+ #ib(1)#2.0 Task: 'PLOT'#ie(1)##goalpage("plotmanager")#
+
+ 'PLOT' enth„lt den Multispool-Manager des Graphik-Systems, der die indirekte
+ Ausgabe von PICFILES auf jedem Endger„t der Station erm”glicht. Der Manager
+ verwaltet im Gegensatz zum 'PRINTER' aber nicht nur eine Warteschlange bzw.
+ Server sondern mehrere (die Anzahl ist durch die Konstante 'max spools' in
+ 'GRAPHIK.Manager' festgelegt).
+ (Achtung !, eine Task kann nicht mehr als 255 Datenr„ume, also Eintr„ge in
+ Warteschlangen verwalten !).
+ Sollte PLOT neben PRINTER zur graphischen Ausgabe auf dem Drucker arbei-
+ ten, so ist in PRINTER 'spool control task (/"PLOT")' einzustellen.
+ Der Plotmanager besitzt eine Kommandoebene, die wie folgt arbeitet:
+ Nach 'continue' erscheint der Prompt 'All-Plotter', der anzeigt, daá nach-
+ folgende Kommandos gleichermassen auf alle Spools/Server wirken; sollen
+ die Kommandos auf nur einen Spool/Server wirken, so ist dieser mit 'select
+ plotter' einzustellen, was durch eine Žnderung des Prompts auf den
+ Plotternamen angezeigt wird.
+
+ - 2.1 #ib(2," (2.1)")#listspool#ie(2,"")#
+ Gibt Auskunft ber die Inhalte und Aktivit„ten aller bzw. des
+ gew„hlten Spools.
+
+ - 2.2 #ib(2," (2.2)")#clearspool#ie(2,"")#
+ Initialisiert nach Rckfrage alle bzw. den gew„hlten Spool;
+ s„mtliche Eintr„ge werden gel”scht, evtl. laufende Ausgaben
+ abgebrochen (der Server beendet).
+
+ - 2.3 #ib(2," (2.3)")#spool control#ie(2,"")#
+ (TEXT CONST control task)
+ Stellt die Task mit dem Namen 'control task' und alle ihre S”hne
+ als privilegiert ein, d.h. Kommandos wie 'start', 'stop' usw. werden
+ von diesen Tasks wie auch von Systemstasks und von 'GRAPHIK'
+ aus zugelassen.
+
+ - 2.4 #ib(2," (2.4)")#stop#ie(2,"")#
+ Unterbricht eine evtl. laufende Ausgabe und unterbindet die
+ weitere Ausgabe von Eintr„gen aller bzw. des gew„hlten Spools;
+ wobei nach Rckfrage die abgebrochene Ausgabe als erster
+ Eintrag erneut eingetragen wird.
+
+ - 2.5 #ib(2," (2.5)")#start#ie(2,"")#
+ Nimmt die Ausgabe des gew„hlten bzw. aller Spools wieder auf.
+
+ - 2.6 #ib(2," (2.6)")#halt#ie(2,"")#
+ Unterbindet die weitere Ausgabe von Eintr„gen aller bzw. des
+ gew„hlten Spools; evtl. laufende Ausgaben werden jedoch nicht
+ abgebrochen.
+
+ - 2.7 #ib(2," (2.7)")#select plotter#ie(2,"")#
+ Bietet als Auswahl die Endger„te der Station an; die obenge-
+ nannten Operationen wirken danach nur auf den gew„hlten Spool,
+ was durch die Žnderung des Prompts auf den Namen des gew„hlten
+ Endger„tes angezeigt wird.
+ Der Abbruch der Auswahloperation fhrt dementsprechend wieder
+ zur Einstellung 'All-Plotter'.
+ Das aktuell zu kontrollierende Endger„t kann jedoch auch mit
+ den Standard-Auswahloperationen gew„hlt werden; diese lassen
+ aber auch die Wahl von Plottern anderer Stationen zu, was im
+ Plotmanager als 'All-Plotter' gewertet wird.
+
+ Folgende Funktionen k”nnen nur auf einzelne Spools; also nicht auf
+ 'All-Plotter' angewendet werden:
+
+ - 2.8 #ib(2," (2.8)")#killer#ie(2,"")#
+ Bietet im Dialog alle im Spool enthaltenen Eintr„ge zum L”schen
+ an.
+
+ - 2.9 #ib(2," (2.9)")#first#ie(2,"")#
+ Bietet im Dialog alle dem ersten Eintrag nachfolgenden Eintr„ge
+ zum Vorziehen an.
+
+ #ib(1)#3.0 Task: 'FKT'#ie(1)#
+
+ Die Task 'FKT' stellt den Funktionenplotter FKT, bzw. dessen menuegesteuerten
+ Monitor als Taskmonitor zur Verfgung.
+ Wird die Task mit dem Menuepunkt
+ 'q' - in die Kommandoebene zurueck
+ verlassen, so werden alle enthaltenen PICFILES gel”scht.
+ Der Funktionenplotter wird in 'FKT' mit dem Kommando 'fktmanager' instal-
+ liert; er ist jedoch auch in jeder anderen Task mit dem Kommando 'fktplot'
+ erreichbar.
+
+#page#
+#bottom#
+#right#Seite %
+#end#
+#head#
+#type("prop")##center#Dokumentation des MPG-Graphik-Systems
+#type("8.5.klein")##center#Teil 2: Operationen der Basisgraphik
+#type("pica.lq")##free(1.0)#
+#end#
+#type("pica")##on("u")##ib(1)#Teil 2: Operationen der Basisgraphik#ie(1)##off("u")##type("prop.lq")#
+#free(0.5)#
+#goalpage("gfuncts")#
+ Die Pakete der Basisgraphik sind in der Datei 'GRAPHIK.Basis' enthalten, und
+ realisieren folgende Aufgaben:
+ - Vektorielle Abbildung virtueller Koordinaten unter Verwendung einer
+ Transformationsmatrix auf die konkrete Endger„t-Zeichenfl„che unter
+ Bercksichtigung des eingestellten Teils der Zeichenfl„che ('viewport')
+ und des Fensters ('window').
+ - Bereitstellung des Datentyps PICTURE, der die gemeinsame Manipulation
+ von Objekten erm”glicht.
+ - Bereitstellung des Datentyps PICFILE, der die gemeinsame Manipulation
+ von PICTURES hinsichtlich ihrer Ausgabe erm”glicht.
+ - Bereitstellung des Datentyps PLOTTER, der die freie Auswahl von End-
+ ger„ten erm”glicht, und Informationen ber sie liefert.
+
+ Zu den mit '*' gekennzeichneten Beschreibungen vgl. die Beschreibung im
+ Programmierhandbuch.
+
+ #ib(1)#1.0 Paket: 'transformation'#ie(1)#
+
+ 1.1 BOOL PROC #ib(2," (1.1)")#clippedline#ie(2," (PROC)")#
+ (REAL VAR x0, y0, x1, y1)
+ - Intern verwendete Prozedur, welche die in den Variablen ber-
+ gebenen Anfangs- und Endkoordinaten einer Geraden auf die
+ Ausmaáe der aktuellen Endger„t-Zeichenfl„che begrenzt.
+ Es wird zurckgeliefert, ob Teile der bergebenen Geraden inner-
+ halb der Zeichenfl„che liegen, also gezeichnet werden mssen.
+
+ 1.2 PROC #ib(2," (1.2)")#drawingarea *#ie(2," (PROC)")#
+ (REAL VAR x cm, REAL VAR y cm, REAL VAR xp, REAL yp)
+ - Tr„gt in die bergebenen Variablen die Ausmaáe der aktuellen
+ Endger„t-Zeichenfl„che in cm und Pixel ein.
+
+ 1.3 PROC #ib(2," (1.3)")#getvalues#ie(2," (PROC)")#
+ (ROW 3 ROW 2 REAL VAR, ROW 2 ROW 2 REAL VAR,
+ ROW 4 REAL VAR, ROW 2 REAL VAR, ROW 3 REAL VAR)
+ - Intern verwendete Prozedur, die in die bergebenen Felder die
+ aktuellen Werte der Transformationsmatrix eintr„gt.
+
+ 1.4 BOOL PROC #ib(2," (1.4)")#newvalues#ie(2," (PROC)")#
+ - Intern verwendete Prozedur, die anzeigt, ob die Transformations-
+ matrix ver„ndert wurde.
+
+ 1.5 PROC #ib(2," (1.5)")#oblique *#ie(2," (PROC)")#
+ (REAL CONST a, b)
+ - Stellt fr o.g. Abbildungsfunktion die Projektionsart
+ 'schiefwinklig' ein; 'a;b' ist der Punkt in der X-Y-Ebene, auf den der
+ Einheitsvektor in Z-Richtung abgebildet werden soll.
+
+ 1.6 PROC #ib(2," (1.6)")#orthographic *#ie(2," (PROC)")#
+ - Stellt die Projektionsart 'Paralellprojektion' ein (s.o.).
+
+ 1.7 PROC #ib(2," (1.7)")#perspective *#ie(2," (PROC)")#
+ (REAL CONST x,y,z)
+ - Stellt die Abbildungsart 'perspektivisch' ein; 'x;y;z' gibt den
+ Fluchtpunkt der Zentralperspektive an.
+
+ 1.8 PROC #ib(2," (1.8)")#setdrawingarea#ie(2," (PROC)")#
+ (REAL CONST x cm, y cm, x p, y p)
+ - Intern verwendete Prozedur, die vorm Beginn des Zeichnens dem
+ Transformationspaket die Ausmaáe der Endger„t-Zeichenfl„che
+ bergibt.
+
+ 1.9 PROC #ib(2," (1.9)")#setvalues#ie(2," (PROC)")#
+ (ROW 3 ROW 2 REAL CONST, ROW 2 ROW 2 REAL CONST,
+ ROW 4 REAL CONST, ROW 2 REAL CONST, ROW 3 REAL CONST)
+ - Intern verwendete Prozedur, welche die Transformationsmatrix mit
+ den Werten der bergebenen Felder fllt.
+
+ 1.10 PROC #ib(2," (1.10)")#transform#ie(2," (PROC)")#
+ (REAL CONST x, y, z, xp, yp)
+ - Intern verwendete Prozedur zur Abbildung eines drei-
+ dimensionalen Vektors in virtuellen Koordinaten auf
+ (zweidimensionale) Bildschirmkoordinaten.
+
+ 1.11 PROC #ib(2," (1.11)")#view *#ie(2," (PROC)")#
+ (REAL CONST alpha, phi, theta)
+ - Stellt fr o.g. Abbildungsfunktion zus„tzlich die Drehwinkel der
+ Abbildung in Polarkoordinaten ein.
+ In der derzeitigen Version fehlerhaft !
+
+ 1.12 PROC #ib(2," (1.12)")#view *#ie(2," (PROC)")#
+ (REAL CONST alpha, phi)
+ - s.o.; ebenfalls fehlerhaft !
+
+ 1.13 PROC #ib(2," (1.13)")#view *#ie(2," (PROC)")#
+ (REAL CONST alpha)
+ - Dreht die Abbildung um den Mittelpunkt der Zeichenfl„che um
+ 'alpha' Grad !
+
+ 1.14 PROC #ib(2," (1.14)")#viewport *#ie(2," (PROC)")##goalpage("viewport")#
+ (REAL CONST hormin, hormax, vertmin, vertmax)
+ - Definiert den verwendeten Teil der Endger„t-Zeichenfl„che in
+ Welt- oder Ger„tekoordinaten, bei Verwendung dieser Prozedur ist
+ vorangehend 'window (TRUE)' aufzurufen; damit die neuen Werte
+ auch Bercksichtigung finden.
+
+ 1. Angabe in Weltkoordinaten (cm):
+ 'hor min;vert min' - Position der unteren linken Ecke der ver-
+ wendeten Zeichenfl„che in cm.
+ 'hor max;vert max' - Position der oberen rechten Ecke der ver-
+ wendeten Zeichenfl„che in cm.
+
+ 2. Angabe in Ger„tekoordinaten:
+ Es wird eine Angabe in Ger„tekoordinaten angenommen, wenn
+ hor max < 2.0 und vert max < 2.0 gilt.
+ Die Werte werden als Bruchteile der GrӇe der gesamten Zei-
+ chenfl„che aufgefaát, wobei fr die horizontalen Werte zu-
+ s„tzlich das Verh„ltnis 'Horizontale/Vertikale' (i.d. Regel > 1)
+ bercksichtigt wird.
+ Das bedeutet fr 'vert max' = 'hor max' = 1,
+ daá der obere Rand der spezifizierten Zeichenfl„che an der
+ Oberkante der Gesamt-Zeichenfl„che, und der rechte Rand an
+ der rechten Kante des durch die Gesamth”he der Zeichenfl„che
+ gegebenen Quadrates liegt (unverzerrt).
+ Soll die gesamte Zeichenfl„che genutzt werden, so ist 'hor min'
+ = 'vert min' = 0 und 'vert max' = 1 zu setzen;
+ 'hor max' dagegen auf das Verh„ltnis 'Horizontale/Vertikale' !.
+ Die halbe horizontale Verwendung der Zeichenfl„che ist durch
+ Halbierung des Seitenverh„ltnisses zu erreichen.
+
+ 1.15 PROC #ib(2," (1.15)")#window *#ie(2," (PROC)")#
+ (REAL CONST xmin, xmax, ymin, ymax, zmin, zmax)
+ - Stellt die Fenstergr”áe der virtuellen Zeichenfl„che, zu der die
+ virtuellen Koordinaten in Bezug gesetzt werden sollen, mittels
+ der gegenberliegenden Ecken 'min' und 'max' ein.
+
+ 1.16 PROC #ib(2," (1.16)")#window *#ie(2," (PROC)")#
+ (REAL CONST xmin, xmax, ymin, ymax)
+ - s.o., jedoch fr zweidimensionale Darstellungen.
+
+ 1.17 PROC #ib(2," (1.17)")#window *#ie(2," (PROC)")#
+ (BOOL CONST update)
+ - Die šbergabe von TRUE verursacht die interne Neuberechnung der
+ Transformationsmatrix beim n„chsten 'set values'; die immer dann
+ notwendig wird, wenn die Zeichenfl„che oder das mit 'viewport'
+ eingestellte virtuelle Fenster ver„ndert werden soll.
+#page#
+ #ib(1)#2.0 Paket: picture#ie(1)#
+
+ 2.1 #ib(2," (2.1)")#TYPE PICTURE *#ie(2,"")#
+ - Datentyp zur Verwaltung eines einfarbigen Bildes; das aus entwe-
+ der zwei- oder dreidimensionalen Objekten besteht.
+
+ 2.2 OP #ib(2," (2.2)")#:= *#ie(2," (OP)")#
+ (PICTURE VAR dest, PICTURE CONST source)
+ - Zuweisungsoperator fr den Datentyp PICTURE.
+
+ 2.3 PROC #ib(2," (2.3)")#bar *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST width, height, pattern)
+ - Zeichnet in 'pic' an der aktuellen Position ein Rechteck
+ 'width/height' mit dem Muster 'pattern', wobei zu beachten ist, daá
+ die aktuelle X-Position die horizontale Position der vertikalen
+ Symmetrieachse des Rechtecks angibt.
+ Als 'pattern' z.Zt. implementiert:
+ 0 - nicht gefllt
+ 1 - halb gefllt (zeitaufwendig!)
+ 2 - gefllt
+ 3 - horizontal schraffiert
+ 4 - vertikal schraffiert
+ 5 - horizontal und vertikal schraffiert
+ 6 - diagonal rechts schraffiert
+ 7 - diagonal links schraffiert
+ 8 - diagonal rechts und links schraffiert
+
+ 2.4 OP #ib(2," (2.4)")#CAT *#ie(2," (OP)")#
+ (PICTURE VAR dest, PICTURE CONST add)
+ - Fgt die Bilder 'dest' und 'add' in 'dest' zusammen.
+
+ 2.5 PROC #ib(2," (2.5)")#circle *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST x, y, rad, INT CONST pattern)
+ - Zeichnet in 'pic' an der Position 'x;y' mit dem Radius 'rad' und dem
+ Muster 'pattern' gefllt ('pattern' z.Zt. wirkungslos)
+
+ 2.6 INT PROC #ib(2," (2.6)")#dim *#ie(2," (PROC)")#
+ (PICTURE CONST pic)
+ - Liefert die fr 'pic' eingestellte Dimensionalit„t
+ (2 - zweidimensional; 3 - dreidimensional); wobei die Dimensionali-
+ t„t mit der ersten Zeichenoperation eingestellt wird.
+
+ 2.7 PROC #ib(2," (2.7)")#draw *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST x, y, z)
+ - Zeichnet in 'pic' von der aktuellen Position einen Gerade zur
+ Position 'x;y'.
+
+ 2.8 PROC #ib(2," (2.8)")#draw *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST x, y, z)
+ - s.o., jedoch fr zweidimensionale Bilder.
+
+ 2.9 PROC #ib(2," (2.9)")#draw *#ie(2," (PROC)")#
+ (PICTURE VAR pic, TEXT CONST text, REAL CONST angle, height, width)
+ - Zeichnet in 'pic' an der aktuellen Position 'text' in der GrӇe
+ 'height/width' unter dem Winkel 'angle'.
+
+ 2.10 PROC #ib(2," (2.10)")#draw *#ie(2," (PROC)")#
+ (PICTURE VAR pic, TEXT CONST text)
+ - Zeichnet in 'pic' an der aktuellen Position 'text' in StandardgrӇe
+ und normaler Ausrichtung.
+
+ 2.11 PROC #ib(2," (2.11)")#draw cm *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST x cm, y cm)
+ - Zeichnet in 'pic' eine Gerade zur cm-Position 'x;y', d.h., die Projek-
+ tionseinstellung wird nicht beachtet.
+
+ 2.12 PROC #ib(2," (2.12)")#draw cm r *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST dx cm, dy cm)
+ - Zeichnet in 'pic' eine Gerade zur um 'dx cm;dy cm' verschobenen
+ Zeichenposition, d.h, die Projektionseinstellung wird nicht beach-
+ tet.
+
+ 2.13 PROC #ib(2," (2.13)")#draw r *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST dx, dy, dz)
+ - Zeichnet in 'pic' eine Gerade der L„nge 'dx;dy;dz' relativ zur
+ aktuellen Position.
+
+ 2.14 PROC #ib(2," (2.14)")#draw r *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST dx, dy)
+ - s.o., jedoch fr zweidimensionale Bilder.
+
+ 2.15 PROC #ib(2," (2.15)")#extrema *#ie(2," (PROC)")#
+ (PICTURE CONST pic, REAL VAR x min, x max, y min, y max, z min, z max)
+ - Tr„gt in die bergebenen Variablen die gr”ssten und kleinsten
+ Koordinaten aller Objekte in 'pic' ein.
+
+ 2.16 PROC #ib(2," (2.16)")#extrema *#ie(2," (PROC)")#
+ (PICTURE CONST pic, REAL VAR x min, x max, y min, y max)
+ - s.o., jedoch fr zweidimensionale Bilder.
+
+ 2.17 INT PROC #ib(2," (2.17)")#length *#ie(2," (PROC)")#
+ (PICTURE CONST pic)
+ - Liefert die L„nge des Objekt-Verwaltungstextes von 'pic'.
+
+ 2.18 PROC #ib(2," (2.18)")#move *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST x, y, z)
+ - F„hrt den Zeichenstift auf 'pic' an die Position 'x;y;z'.
+
+ 2.19 PROC #ib(2," (2.19)")#move *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST x, y)
+ - s.o., jedoch fr zweidimensionale Bilder.
+
+ 2.20 PROC #ib(2," (2.20)")#move cm *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST x cm, y cm)
+ - Die aktuelle Zeichenposition wird auf 'x cm;y cm' verschoben, wobei
+ die Darstellungsart unbercksichtigt bleibt.
+
+ 2.21 PROC #ib(2," (2.21)")#move cm r *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST d xcm, d ycm)
+ - Die aktuelle Zeichenposition wird um 'd xcm;d ycm' verschoben,
+ wobei die Darstellungsart unbercksichtigt bleibt.
+
+ 2.22 PROC #ib(2," (2.22)")#move r *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST dx, dy, dz)
+ - Verschiebt die aktuelle Zeichenposition in 'pic' um 'dx;dy;dz'.
+
+ 2.23 PROC #ib(2," (2.23)")#move r *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST dx, dy)
+ - s.o., jedoch fr zweidimensionale Bilder.
+
+ 2.24 PICTURE PROC #ib(2," (2.24)")#nilpicture *#ie(2," (PROC)")#
+ - Initialisierungsfunktion; liefert 'leeres Bild'.
+
+ 2.25 INT PROC #ib(2," (2.25)")#pen *#ie(2," (PROC)")#
+ (PICTURE CONST pic)
+ - Liefert den fr 'pic' eingestellten Stift (Nummer 1 - 16).
+
+ 2.26 PROC #ib(2," (2.26)")#pen *#ie(2," (PROC)")#
+ (PICTURE VAR pic, INT CONST no)
+ - Stellt den Stift 'no' fr 'pic' ein, wobei 'no' die Werte 1 - 16 an-
+ nehmen darf.
+
+ 2.27 PICTURE PROC #ib(2," (2.27)")#picture *#ie(2," (PROC)")#
+ (TEXT CONST objects)
+ - Die Objektbeschreibung aller Objekte eines Bildes wird in einem
+ Text verwaltet; mit dieser Prozedur wird ein TEXT im entsprechen-
+ den Format in ein PICTURE verwandelt.
+ Das Format des TEXTes: <INT> Dimension : 2- oder 3-D
+ <INT> Zeichenstift-Nummer
+ <...> Objekteintr„ge
+
+ Die Objekteintr„ge haben folgendes Format:
+ <INT> Objektcode <...> Parameter.
+
+ Objektcodes fr: > Die Parameter entsprechen der
+ - draw 1 Parameterfolge der Prozeduren.
+ - move 2
+ - text 3 > Vor dem Text wird als <INT> die
+ - move r 4 Textl„nge gehalten.
+ - draw r 5
+ - move cm 6
+ - draw cm 7
+ - move cm r 8
+ - draw cm r 9
+ - bar 10
+ - circle 11
+
+ 2.28 PROC #ib(2," (2.28)")#rotate *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST alpha, beta, gamma)
+ - Die Objekte von 'pic' werden gem„á den Winkeln 'alpha;beta;gamma'
+ im positiven Sinne um die X-,Y-,Z-Achse gedreht; wobei nur ein
+ Winkel <> 0.0 sein darf.
+
+ 2.29 PROC #ib(2," (2.29)")#rotate *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST alpha)
+ - Die Objekte von 'pic' werden gem„á dem Winkel 'alpha' im positiven
+ Sinne um die X-Achse gedreht.
+
+ 2.30 PROC #ib(2," (2.30)")#stretch *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST xc, yc, zc)
+ - 'pic' wird um die Faktoren 'xc;yc;zc' gestreckt oder gestaucht:
+ Faktor > 1 -> Streckung
+ Faktor < 1 -> Stauchung
+ Faktor < 0 -> zus„tzlich Achsenspiegelung
+
+ 2.31 PROC #ib(2," (2.31)")#stretch *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST xc, yc)
+ - s.o., jedoch fr zweidimensionale Bilder.
+
+ 2.32 TEXT PROC #ib(2," (2.32)")#text *#ie(2," (PROC)")#
+ (PICTURE CONST pic)
+ - Liefert den Objekt-Verwaltungstext von 'pic'(vergleiche
+ 'picture').
+
+ 2.33 PROC #ib(2," (2.33)")#translate *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST dx, dy, dz)
+ - 'pic' wird um 'dx;dy;dz' verschoben.
+
+ 2.34 PROC #ib(2," (2.34)")#translate *#ie(2," (PROC)")#
+ (PICTURE VAR pic, REAL CONST dx, dy)
+ - s.o., jedoch fr zweidimensionale Bilder.
+
+ 2.35 PROC #ib(2," (2.35)")#where *#ie(2," (PROC)")#
+ (PICTURE CONST pic, REAL VAR x, y, z)
+ - Tr„gt die aktuelle Zeichenposition in 'pic' in die bergebenen
+ Variablen 'x;y;z' ein.
+
+ 2.36 PROC #ib(2," (2.36)")#where *#ie(2," (PROC)")#
+ (PICTURE CONST pic, REAL VAR x, y)
+ - s.o., jedoch fr zweidimensionale Bilder.
+#page#
+ #ib(1)#3.0 Paket: 'picfile'#ie(1)#
+
+ 3.1 #ib(2," (3.1)")#TYPE PICFILE#ie(2,"")#
+ - Datentyp zur Verwaltung mehrerer Bilder (PICTUREs) und der
+ Darstellungsparameter.(Aktuelle Typnummer: 1102 !).
+
+ 3.2 OP #ib(2," (3.2)")#:= *#ie(2," (OP)")#
+ (PICFILE VAR dest, DATASPACE CONST source)
+ - Assoziiert das PICFILE 'dest' mit dem DATASPACE 'source'.
+
+ 3.3 OP #ib(2," (3.3)")#:= *#ie(2," (OP)")#
+ (PICFILE VAR dest, PICFILE CONST source):
+ - Assoziiert das PICFILE 'dest' mit 'source'; wie bei Files entsteht
+ keine Kopie!
+
+ 3.4 INT PROC #ib(2," (3.4)")#background *#ie(2," (PROC)")#
+ (PICFILE CONST pf)
+ - Liefert die auf 'pf' eingestellte Hintergrundfarbe.
+
+ 3.5 PROC #ib(2," (3.5)")#background *#ie(2," (PROC)")#
+ (PICFILE VAR pf, INT CONST no)
+ - Stellt die Farbe 'no' als Hintergrundfarbe fr 'pf' ein:
+
+ 3.6 PROC #ib(2," (3.6)")#delete picture *#ie(2," (PROC)")#
+ (PICFILE VAR pf)
+ - L”scht das aktuelle Bild in 'pf'.
+
+ 3.7 PROC #ib(2," (3.7)")#down *#ie(2," (PROC)")#
+ (PICFILE VAR pf)
+ - Positioniert in 'pf' ein Bild weiter.
+
+ 3.8 PROC #ib(2," (3.8)")#down *#ie(2," (PROC)")#
+ (PICFILE VAR pf, INT CONST step)
+ - Positioniert in 'pf' 'step'-Bilder weiter.
+
+ 3.9 BOOL PROC #ib(2," (3.9)")#eof *#ie(2," (PROC)")#
+ (PICFILE CONST)
+ - Liefert zurck, ob das aktuelle Bild auch das letzte des PICFILES
+ ist.
+
+ 3.10 PROC #ib(2," (3.10)")#extrema *#ie(2," (PROC)")#
+ (PICFILE VAR pf, REAL VAR x min, x max, y min, y max, z min, z max)
+ - Tr„gt in die bergebenen Variablen die kleinsten bzw. gr”áten
+ Koordinaten aller Bilder in 'pf' ein.
+
+ 3.11 PROC #ib(2," (3.11)")#extrema *#ie(2," (PROC)")#
+ (PICFILE VAR pf, REAL VAR x min, x max, y min, y max)
+ - s.o., jedoch fr zweidimensionale PICFILEs.
+
+ 3.12 PROC #ib(2," (3.12)")#get *#ie(2," (PROC)")#
+ (PICFILE VAR pf, FILE VAR source)
+ - Liest die in 'source' enthaltenen Informationen ber Bilder nach
+ 'pf' ein.
+
+ 3.13 PROC #ib(2," (3.13)")#get values *#ie(2," (PROC)")#
+ (PICFILE CONST pf, ROW 3 ROW 2 REAL VAR,ROW 2 ROW 2 REAL VAR,
+ ROW 4 REAL VAR, ROW 2 REAL VAR, ROW 3 REAL VAR)
+ - Tr„gt die Werte der Transformationsmatrix von 'pf' in die ber-
+ gebenen Variablenfelder ein.
+
+ 3.14 PROC #ib(2," (3.14)")#insert picture *#ie(2," (PROC)")#
+ (PICFILE VAR pf)
+ - Fgt vor das aktuelle Bild von 'pf' ein leeres Bild ein.
+
+ 3.15 BOOL PROC #ib(2," (3.15)")#is first picture *#ie(2," (PROC)")#
+ (PICFILE CONST pf)
+ - Liefert zurck, ob das aktuelle auch das erste Bild von 'pf' ist.
+
+ 3.16 PROC #ib(2," (3.16)")#oblique *#ie(2," (PROC)")#
+ (PICFILE VAR pf, REAL CONST a, b)
+ - Stellt fr 'pf' die Projektionsart 'schiefwinklig' ein; 'a;b' ist der
+ Punkt in der X-Y-Ebene, auf den der Einheitsvektor in Z-Richtung
+ abgebildet werden soll.
+
+ 3.17 PROC #ib(2," (3.17)")#perspective *#ie(2," (PROC)")#
+ (PICFILE VAR pf, REAL CONST x, y, z)
+ - Stellt fr 'pf' die Projektionsart 'perspektivisch' ein; 'x;y;z' gibt
+ den Fluchtpunkt der Zentralperspektive an.
+
+ 3.18 INT PROC #ib(2," (3.18)")#picture no *#ie(2," (PROC)")#
+ (PICFILE CONST pf)
+ - Liefert die Nummer des aktuellen Bildes von 'pf' zurck.
+
+ 3.19 INT PROC #ib(2," (3.19)")#pictures *#ie(2," (PROC)")#
+ (PICFILE CONST pf)
+ - Liefert die Anzahl der in 'pf' enthaltenen Bilder zurck.
+
+ 3.20 PROC #ib(2," (3.20)")#put *#ie(2," (PROC)")#
+ (FILE VAR dest, PICFILE CONST pf)
+ - Liest 'pf' nach 'dest' aus.
+
+ 3.21 PROC #ib(2," (3.21)")#put picture *#ie(2," (PROC)")#
+ (PICFILE VAR pf, PICTURE CONST ins)
+ - Fgt das Bild 'ins' vor das aktuelle Bild von 'pf' ein.
+
+ 3.22 PROC #ib(2," (3.22)")#read picture *#ie(2," (PROC)")#
+ (PICFILE VAR pf, PICTURE VAR pic)
+ - Tr„gt das aktuelle Bild von 'pf' in 'pic' ein.
+
+ 3.23 PROC #ib(2," (3.23)")#selected pen *#ie(2," (PROC)")#
+ (PICFILE VAR pf, INT CONST no, INT VAR color, thickness, linetype,
+ BOOL VAR visible)
+ - Tr„gt in die bergebenen Variablen die fr den Stift 'no' aktuell
+ eingestellten Werte ein, wobei 'no' die Werte 1 - 16 annehmen darf.
+
+ 3.24 PROC #ib(2," (3.24)")#select pen *#ie(2," (PROC)")#
+ (PICFILE VAR pf, INT CONST no, INT CONST color, thickness, linetype,
+ BOOL CONST visible)
+ - Stellt fr den Stift 'no' von 'pf' die bergebenen Werte fr Farbe,
+ Stiftbreite, Art des Linenzuges ein, wobei 'no' die Werte 1 - 16
+ annehmen darf.
+ 'visible' = FALSE bedeutet, das die mit diesem Stift gezogenen
+ Linien innerhalb bereits durch das Zeichnen entstandener Fl„chen
+ nicht gezeichnet werden, die Fl„chen sie also 'verdecken'.
+ Vordefiniert sind:
+ - color:
+ <0 - nicht standardisierte XOR-Modi
+ 0 - L”schstift
+ 1 - Standardfarbe d. Endger„tes (s/w)
+ 2 - rot
+ 3 - blau
+ 4 - grn
+ 5 - schwarz
+ 6 - weiss
+ n - Sonderfarben
+ - thickness:
+ 0 - Standardstrichst„rke d. Endger„tes
+ n - Strichst„rke in 1/10 mm
+ - linetype:
+ 0 - keine Linie
+ 1 - durchg„ngige Linie
+ 2 - gepunktete Linie
+ 3 - kurz gesrichelte Linie
+ 4 - lang gestrichelte Linie
+ 5 - Strichpunktlinie
+ (Standard-Definitionen, die Linetypes k”nnen
+ ber 'basisplot' auch ver„ndert werden.)
+
+ 3.25 PROC #ib(2," (3.25)")#set values *#ie(2," (PROC)")#
+ (PICFILE VAR pf, ROW 3 ROW 2 REAL CONST,
+ ROW 2 ROW 2 REAL CONST,
+ ROW 4 REAL CONST,
+ ROW 2 REAL CONST, ROW 3 REAL CONST)
+ - Die bergebenen Felder werden in die Transformationsmatrix von
+ 'pf' bernommen.
+
+ 3.26 PROC #ib(2," (3.26)")#to eof *#ie(2," (PROC)")#
+ (PICFILE VAR pf)
+ - Positioniert auf das letzte Bild von 'pf'.
+
+ 3.27 PROC #ib(2," (3.27)")#to first pic *#ie(2," (PROC)")#
+ (PICFILE VAR pf)
+ - Positioniert auf das erste Bild von 'pf'.
+
+ 3.28 PROC #ib(2," (3.28)")#to pic *#ie(2," (PROC)")#
+ (PICFILE VAR pf, INT CONST n)
+ - Positioniert auf das 'n'-te Bild von 'pf'.
+
+ 3.29 PROC #ib(2," (3.29)")#up *#ie(2," (PROC)")#
+ (PICFILE VAR pf)
+ - Positioniert in 'pf' ein Bild zurck.
+
+ 3.30 PROC #ib(2," (3.30)")#up *#ie(2," (PROC)")#
+ (PICFILE VAR pf, INT CONST step)
+ - Positioniert in 'pf' 'step'-Bilder zurck.
+
+ 3.31 PROC #ib(2," (3.31)")#view *#ie(2," (PROC)")#
+ (PICFILE VAR pf, REAL CONST alpha, phi, theta)
+ - Stellt fr die Abbildung von 'pf' zus„tzlich die Drehwinkel der
+ Abbildung in Polarkoordinaten ein.
+ In der derzeitigen Version fehlerhaft !
+
+ 3.32 PROC #ib(2," (3.32)")#view *#ie(2," (PROC)")#
+ (PICFILE VAR pf, REAL CONST alpha, phi)
+ - s.o.; in der derzeitigen Version fehlerhaft !
+
+ 3.33 PROC #ib(2," (3.33)")#view *#ie(2," (PROC)")#
+ (REAL CONST alpha)
+ - Dreht das Bild um den Mittelpunkt der Zeichenfl„che um 'alpha'
+ Grad !
+
+ 3.34 PROC #ib(2," (3.34)")#viewport *#ie(2," (PROC)")#
+ (PICFILE VAR pf, REAL CONST hor min, hor max, vert min, vert max)
+ - Spezifiziert die Zeichenfl„che, auf die 'pf' abgebildet werden soll.
+ Siehe dazu auch 'viewport' im 'transformation'-Paket (S. #topage("viewport")#).
+
+ 3.35 PROC #ib(2," (3.35)")#window *#ie(2," (PROC)")#
+ (PICFILE VAR pf, REAL CONST x min, x max, y min, y max, z min, z max)
+ - Definiert die virtuelle Zeichenfl„che von 'pf'.
+
+ 3.36 PROC #ib(2," (3.36)")#window *#ie(2," (PROC)")#
+ (PICFILE VAR pf, REAL CONST x min, x max, y min, y max)
+ - s.o., jedoch fr zweidimensionale PICFILEs.
+
+ 3.37 PROC #ib(2," (3.37)")#write picture *#ie(2," (PROC)")#
+ (PICFILE VAR pf, PICTURE CONST new)
+ - šberschreibt das aktuelle Bild von 'pf' mit 'new'.
+#page#
+ #ib(1)#4.0 Paket: 'devices'#ie(1)#
+
+ 4.1 #ib(2," (4.1)")#TYPE PLOTTER#ie(2,"")#
+ - Verwaltungstyp zur Repr„sentation eines Endger„tes hinsichtlich
+ seiner Station, seines Kanals, seines Namens sowie seiner Zeichen-
+ fl„che. Dabei ist zu beachten, daá der gltige Endger„t-
+ Descriptor, der zur Selektion verwendet wird, aus Station, Kanal
+ und Namen besteht; die Namen also nicht eindeutig vergeben
+ werden mssen.
+
+ 4.2 OP #ib(2," (4.2)")#:=#ie(2," (OP)")#
+ (PLOTTER VAR dest, PLOTTER CONST source)
+ - Zuweisungsoperator fr den Datentyp 'PLOTTER'.
+
+ 4.3 BOOL OP #ib(2," (4.3)")#=#ie(2," (OP)")#
+ (PLOTTER CONST left, right)
+ - Vergleichsoperator fr den Datentyp 'PLOTTER'.
+
+ 4.4 INT PROC #ib(2," (4.4)")#actual plotter#ie(2," (PROC)")#
+ - Liefert die interne Verwaltungsnummer des eingestellten End-
+ ger„tes (Kein Endger„t eingestellt -> 0).
+
+ 4.5 INT PROC #ib(2," (4.5)")#channel#ie(2," (PROC)")#
+ (PLOTTER CONST plotter)
+ - Liefert den Kanal von 'plotter'.
+
+ 4.6 PROC #ib(2," (4.6)")#drawingarea#ie(2," (PROC)")#
+ (REAL VAR x cm, y cm, INT VAR x p, y p)
+ - Tr„gt in die bergebenen Variablen die Maáe der
+ Zeichenfl„che des eingestellten Endger„tes ein.
+
+ 4.7 PROC #ib(2," (4.7)")#drawingarea#ie(2," (PROC)")#
+ (REAL VAR x cm, y cm, INT VAR x p, y p, PLOTTER CONST plotter)
+ - Tr„gt in die bergebenen Variablen die Maáe der Zeichenfl„che
+ von 'plotter' ein.
+
+ 4.8 PROC #ib(2," (4.8)")#install plotter#ie(2," (PROC)")#
+ (TARGET VAR new descriptors)
+ - šbergibt dem Verwaltungspacket den zu verwaltenden Satz End-
+ ger„te. Wird intern vom 'device interface' verwendet, kann aber
+ auch im nachhinein zur Installation von Endger„ten anderer
+ Stationen oder zum Ausblenden von Endger„ten dienen. Nachdem
+ die Graphik installiert wurde, k”nnen jedoch keine neuen sta-
+ tionseigenen Endger„te erzeugt werden (oder nur verwaltungs-
+ seitig, d.h. die Ansteuerung fehlt).
+
+ 4.9 TEXT PROC #ib(2," (4.9)")#name#ie(2," (PROC)")#
+ (PLOTTER CONST plotter)
+ - Liefert den Namen von 'plotter'
+
+ 4.10 PLOTTER PROC #ib(2," (4.10)")#no plotter#ie(2," (PROC)")#
+ - Liefert den Endger„t-Descriptor 'kein Plotter'.
+
+ 4.11 PLOTTER PROC #ib(2," (4.11)")#plotter#ie(2," (PROC)")#
+ - Liefert den Endger„t-Descriptor des eingestellten Endger„tes.
+
+ 4.12 PLOTTER PROC #ib(2," (4.12)")#plotter#ie(2," (PROC)")#
+ (TEXT CONST descriptor)
+ - Liefert den Endger„t-Descriptor des durch 'descriptor' beschrie-
+ benen Endger„tes.
+ 'descriptor' hat folgendes Format:
+ <Stationsnummer>/<Kanalnummer>/Endger„tname,
+ wobei nicht vorhandene Endger„te abgelehnt werden.
+
+ 4.13 TEXT PROC #ib(2," (4.13)")#plotterinfo#ie(2," (PROC)")#
+ (TEXT CONST descriptor, INT CONST length)
+ - Liefert einen auf die L„nge 'length' eingerichteten TEXT, der
+ 'descriptor' in aufbereiteter Form wiedergibt.
+ Format von 'descriptor' s.o.
+
+ 4.14 THESAURUS PROC #ib(2," (4.14)")#plotters#ie(2," (PROC)")#
+ - Liefert alle vorhandenen Endger„te in Form o.g. Descriptoren.
+
+ 4.15 PROC #ib(2," (4.15)")#select plotter#ie(2," (PROC)")#
+ (PLOTTER CONST plotter)
+ - Stellt 'plotter' als aktuelles Endger„t ein.
+
+ 4.16 PROC #ib(2," (4.16)")#select plotter#ie(2," (PROC)")#
+ (TEXT CONST descriptor)
+ - Stellt das durch 'descriptor' beschriebene Endger„t als aktuelles
+ Endger„t ein.
+
+ 4.17 PROC #ib(2," (4.17)")#select plotter#ie(2," (PROC)")#
+ - Bietet eine Auswahl aller Endger„te an, und stellt das gew„hlte
+ als aktuelles Endger„t ein.
+
+ 4.18 INT PROC #ib(2," (4.18)")#station#ie(2," (PROC)")#
+ (PLOTTER CONST plotter)
+ - Liefert die Stationsnummer von 'plotter' zurck.
+#page#
+#type("pica")##on("u")##ib(1)#Teil 2.1: Operationen des 'device interface'#ie(1)##off("u")##type("prop.lq")#
+#free(0.5)#
+
+
+ Das automatisch vom 'GRAPHIK.Configurator' anhand von Konfigurationsda-
+ teien erstellte Paket 'device interface' realisiert die normierte, jedoch von
+ der Zeichenfl„che des Endger„ts abh„ngige Ansteuerung der verschiedenen
+ Endger„te. Es entspricht dabei dem Paket 'Endger„t.Basis' der EUMEL-Graphik,
+ geht aber teilweise ber dessen Leistungen hinaus.Hinweis: Falls diese Lei-
+ stung nicht bereits endger„tseitig implementiert ist, wird nicht geclipped;
+ die šberschreitung der Zeichengrenzen hat also Undefiniertes zur Folge.
+ Zudem ist die Mehrheit der Prozeduren ausschlieálich nach 'initplot' funk-
+ tionsf„hig.
+
+ #ib(1)#1.0 Paket: 'device interface'#ie(1)#
+
+ 1.1 INT PROC #ib(2," (1.1)")#background#ie(2," (PROC)")#
+ - Liefert die Nummer der aktuell fr den Hintergrund eingestellten
+ Farbe zurck.
+
+ 1.2 PROC #ib(2," (1.2)")#background#ie(2," (PROC)")#
+ (INT CONST color no)
+ - Stellt die Farbe 'color no' als Hintergrundfarbe ein.
+
+ 1.3 PROC #ib(2," (1.3)")#box#ie(2," (PROC)")#
+ (INT CONST x1, y1, x2, y2, pattern)
+ - Zeichnet ein Rechteck mit den gegenberliegenden Ecken 'x1;y1'
+ und 'x2;y2', das mit dem Muster 'pattern' gefllt wird, wobei
+ 'pattern' endger„tspezifisch ist.
+
+ 1.4 PROC #ib(2," (1.4)")#circle#ie(2," (PROC)")#
+ (INT CONST x, y, rad, from, to)
+ - Zeichnet an der Stelle 'x;y' einen Kreis (bzw. Kreissegment) des
+ Radius 'rad' mit dem Anfangswinkel 'from' und dem Endwinkel 'to'.
+
+ 1.5 PROC #ib(2," (1.5)")#clear#ie(2," (PROC)")#
+ - Initialisiert die Zeichenfl„che des aktuellen Endger„tes, wobei
+ die Zeichenposition auf '0;0' und die Standardfarben
+ gesetzt werden.
+
+ 1.6 PROC #ib(2," (1.6)")#clear#ie(2," (PROC)")#
+ (BOOL CONST onoff)
+ - Die šbergabe von FALSE bewirkt, daá alle nachfolgenden Aufrufe
+ von 'clear' wirkungslos sind; mit TRUE werden sie entsprechend
+ wieder aktiviert.
+
+ 1.7 INT PROC #ib(2," (1.7)")#color#ie(2," (PROC)")#
+ (INT CONST color no)
+ - Liefert den fr die Farbe 'color no' eingestellten Farbwert im
+ normierten RGB-Code von 0-999.
+
+ 1.8 INT PROC #ib(2," (1.8)")#colors#ie(2," (PROC)")#
+ - Liefert die Anzahl m”glicher Farben fr das aktuelle Endger„t.
+
+ 1.9 PROC #ib(2," (1.9)")#draw to#ie(2," (PROC)")#
+ (INT CONST x, y)
+ - Zieht von der aktuellen Zeichenposition eine Gerade zur Position
+ 'x;y'.
+
+ 1.10 PROC #ib(2," (1.10)")#endplot#ie(2," (PROC)")#
+ - Wartet auf eine Eingabe des Benutzers und beendet dann die
+ graphische Ausgabe; ggf. durch Umschalten in den Text-Modus.
+ Falls m”glich, sollte die ausgegebene Graphik jedoch auf dem
+ Bildschirm erhalten bleiben.
+
+ 1.11 PROC #ib(2," (1.11)")#end plot#ie(2," (PROC)")#
+ (BOOL CONST onoff)
+ - Die šbergabe von FALSE bewirkt, daá alle nachfolgenden Aufrufe
+ von 'endplot' wirkungslos sind; mit TRUE werden sie entsprechend
+ wieder aktiviert.
+
+ 1.12 PROC #ib(2," (1.12)")#fill#ie(2," (PROC)")#
+ (INT CONST x, y, INT CONST pattern)
+ - Die Umgebung von 'x;y' wird mit dem Muster 'pattern' gefllt, wobei
+ sowohl 'pattern' als auch die genauen Fll-Bedingungen (Art der
+ Umrahmung usw.) endger„tspezifisch sind.
+
+ 1.13 INT PROC #ib(2," (1.13)")#foreground#ie(2," (PROC)")#
+ - Liefert die Nummer der aktuell fr den Vordergrund eingestellten
+ Farbe zurck.
+
+ 1.14 PROC #ib(2," (1.14)")#foreground#ie(2," (PROC)")#
+ (INT CONST color no)
+ - Stellt die Farbe 'color no' als Vordergrundfarbe ein.
+
+ 1.15 PROC #ib(2," (1.15)")#get cursor#ie(2," (PROC)")#
+ (INT VAR x, y, TEXT VAR exit char)
+ - Nach Aufruf dieser Prozedur sollte das Endger„t die Eingabe
+ einer Position mittels eines graphischen Cursors (i.d.R.
+ Fadenkreuz) erm”glichen. Dieser Modus soll bleibt solange auf-
+ rechterhalten bis eine Taste gedrckt wird; in 'x;y' findet sich
+ dann die Position des Cursors, und in 'exit char' die gedrckte
+ Taste.
+ Diese Prozedur ist jedoch nicht fr das Ein bzw. Ausschalten des
+ graphischen Cursors zust„ndig, d.h der eingeschaltete Cursor ist
+ st„ndig sichtbar; bei ausgeschaltetem Cursor kehrt die Prozedur
+ sofort mit 'exit char' = ""0"" zurck.
+
+ 1.16 BOOL PROC #ib(2," (1.16)")#graphik cursor#ie(2," (PROC)")#
+ - Diese Prozedur gibt an, ob graphische Eingabeoperationen und
+ die dazugeh”rigen Operationen auf dem aktuellen Endger„t ver-
+ fgbar sind.
+
+ 1.17 PROC #ib(2," (1.17)")#graphik cursor#ie(2," (PROC)")#
+ (INT CONST x, y, BOOL CONST onoff)
+ - Diese Prozedur schaltet den graphischen Cursor an bzw. aus oder
+ positioniert ihn. Nach dem Einschalten sollte der Cursor perma-
+ nent sichtbar sein. Ein erneutes Einschalten hat die
+ Neupositionierung des Cursors zur Folge.
+
+ 1.18 PROC #ib(2," (1.18)")#home#ie(2," (PROC)")#
+ - Positioniert die aktuelle Zeichenposition auf den Punkt '0;0'; bei
+ eingeschaltetem graphischen Cursor diesen auf die Mitte der
+ Zeichenfl„che.
+
+ 1.19 PROC #ib(2," (1.19)")#init plot#ie(2," (PROC)")#
+ - Initialisiert das aktuelle Endger„t zur graphischen Ausgabe,
+ (schaltet ggf. in den Graphik-Modus), wobei der Bildschirm jedoch
+ m”glichst nicht gel”scht werden sollte.
+
+ 1.20 PROC #ib(2," (1.20)")#move to#ie(2," (PROC)")#
+ (INT CONST xp, yp)
+ - Die Position 'xp;yp' wird neue Stiftposition; die Wirkung ist unde-
+ finiert bei šberschreitung der Bildschrimgrenzen.
+
+ 1.21 PROC #ib(2," (1.21)")#prepare#ie(2," (PROC)")#
+ - Bereitet die Ausgabe auf einem Endger„t vor; d.h. die Task wird an
+ den entsprechenden Kanal angekoppelt, und andere Tasks am An-
+ koppeln gehindert (z.B. 'stop' des PRINTER-Servers). Dabei wird die
+ Prozedur erst dann verlassen, wenn die Aktion erfolgreich been-
+ det ist. (z.B. bis zur Freigabe des Kanals).
+
+
+ 1.22 PROC #ib(2," (1.22)")#set color#ie(2," (PROC)")#
+ (INT CONST no, rgb)
+ - Setzt die Farbe von 'no' auf die normierte RGB-Farbkombination
+ 'rgb' (0 - 999).
+
+ 1.23 PROC #ib(2," (1.23)")#setmarker#ie(2," (PROC)")#
+ (INT CONST xp, yp, type)
+ - Zeichnet an der Position 'xp;yp' eine Markierung; wobei die Wir-
+ kung bei šberschreitung der Bildschirmgrenzen undefiniert ist.
+ Als 'type' sollten vorhanden sein:
+ 0 - Kreuz '+'
+ 1 - Kreuz diagonal 'x'
+ - weitere beliebig
+
+ 1.24 PROC #ib(2," (1.24)")#setpalette#ie(2," (PROC)")#
+ - Initialisiert die Farben des Endger„tes gem„á den im Paket ge-
+ setzten Farben.
+
+ 1.25 PROC #ib(2," (1.25)")#setpixel#ie(2," (PROC)")#
+ (INT CONST xp, yp)
+ - Setzt das Pixel 'xp;yp' in der aktuellen Schreibfarbe.
+
+ 1.26 PROC #ib(2," (1.26)")#stdcolors#ie(2," (PROC)")#
+ - Initialisiert die Paket-Intern verwendete Farbtabelle auf die
+ standardm„áig fr das Endger„t definierten Farben;
+ wobei die Farben jedoch nicht auf dem Endger„t eingestellt
+ werden.
+
+ 1.27 PROC #ib(2," (1.27)")#stdcolors#ie(2," (PROC)")#
+ (BOOL CONST onoff)
+ - Die šbergabe von FALSE bewirkt, daá alle nachfolgenden Aufrufe
+ von 'stdcolors' wirkungslos sind; mit TRUE werden sie entspre-
+ chend wieder aktiviert.
+#page#
+#type("pica")##on("u")##ib(1)#Teil 2.2: Operationen zur Graphik-Ausgabe#ie(1)##off("u")##type("prop.lq")#
+#free(0.5)#
+
+ Die Pakete zur Ausgabe von Graphiken (PICFILES) sind in der Datei
+ 'GRAPHIK.Basis' enthalten, und realisieren folgende Leistungen:
+ - Im Datentyp PICTURE bzw. PICFILE in Codierter Form verwendete Ausgabe-
+ prozeduren auf einzelne Objekte unter Bercksichtigung der Abbil-
+ dungsparameter und Zeichenfl„che.
+ - Kommunikations- und Kontrolloperationen auf die Task 'PLOT' zur
+ indirekten Ausgabe von PICFILES.
+ - Ausgabeoperationen auf den Datentyp PICTURE bzw. PICFILE unter Be-
+ rcksichtung des eingestellten Endger„tes.
+ Wird fr die Angabe von Koordinaten der Typ REAL verwendet, so handelt es
+ sich um virtuelle Koordinaten, d.h. die Ausgabe-Parameter wie 'viewport' und
+ 'window' werden bercksichtigt; bei Verwendung von INT ist die Ausgabe end-
+ ger„tspezifisch.
+
+ #ib(1)#2.0 Paket: 'basisplot'#ie(1)#
+
+ 2.1 PROC #ib(2," (2.1)")#bar *#ie(2," (PROC)")#
+ (INT CONST x, y, height, width, pattern)
+ - Zeichnet an der Position 'x;y' ein Rechteck der L„nge/Breite
+ 'width/height' mit dem Muster 'pattern', wobei 'x;y' die untere linke
+ Ecke des Rechtecks angibt.
+ Als 'pattern' z.Zt. implementiert:
+ 0 - nicht gefllt
+ 1 - halb gefllt
+ 2 - gefllt
+ 3 - horizontal schraffiert
+ 4 - vertikal schraffiert
+ 5 - horizontal und vertikal schraffiert
+ 6 - diagonal rechts schraffiert
+ 7 - diagonal links schraffiert
+ 8 - diagonal rechts und links schraffiert
+
+ 2.2 PROC #ib(2," (2.2)")#bar *#ie(2," (PROC)")#
+ (REAL CONST height, width, INT CONST pattern)
+ - siehe oben, jedoch mit Ausgangspunkt an der aktuellen Zeichen-
+ position, wobei zu beachten ist, daá die x-Koordinate die horizon-
+ tale Position der vertikalen Symmetrieachse des Rechtecks angibt.
+
+ 2.3 PROC #ib(2," (2.3)")#beginplot#ie(2," (PROC)")#
+ - Leitet die graphische Ausgabe ein, wobei das Endger„t in seinen
+ Startzustand versetzt wird, und dem Transformationspaket die
+ Abmessungen der Zeichenfl„che mitgeteilt werden.
+
+ 2.4 PROC #ib(2," (2.4)")#box *#ie(2," (PROC)")#
+ - Zeichnet eine Umrahmung der gesamten Zeichenfl„che (Nicht nur
+ des verwendeten Teiles).
+
+ 2.5 PROC #ib(2," (2.5)")#circle *#ie(2," (PROC)")#
+ (REAL CONST rad, from, to, INT CONST pattern)
+ - Zeichnet an aktuellen Position einen Kreis od. ein Kreissegment
+ des Radius 'rad'; beginnend bei 'from' bis zum Endwinkel 'to' und
+ gefllt mit dem Muster 'pattern' ('pattern' z.Zt. nicht
+ implementiert).
+
+ 2.6 PROC #ib(2," (2.6)")#draw *#ie(2," (PROC)")#
+ (INT CONST x, y)
+ - Zeichnet von der aktuellen Position eine Gerade zur Position 'x;y'.
+
+ 2.7 PROC #ib(2," (2.7)")#draw *#ie(2," (PROC)")#
+ (INT CONST x0, y0, x1, y1)
+ - Zieht eine Gerade von der Position 'x0;y0' bis zur Position 'x1;y1'.
+
+ 2.8 PROC #ib(2," (2.8)")#draw *#ie(2," (PROC)")#
+ (REAL CONST x, y, z)
+ - Zieht von der aktuellen Zeichenposition eine Gerade zur
+ (transformierten) 3-D Position 'x;y;z'.
+
+ 2.9 PROC #ib(2," (2.9)")#draw *#ie(2," (PROC)")#
+ (REAL CONST x, y)
+ - s.o., jedoch fr zweidimensionale Bilder.
+
+ 2.10 PROC #ib(2," (2.10)")#draw *#ie(2," (PROC)")#
+ (TEXT CONST text, REAL CONST angle, height, width)
+ - Zeichnet den TEXT 'text' ab der aktuellen Zeichenposition unter
+ dem Winkel 'angle' und in der H”he/Breite 'height;width'.
+
+ 2.11 PROC #ib(2," (2.11)")#draw *#ie(2," (PROC)")#
+ - s.o., jedoch in Standard-Ausrichtung (0 Grad) und
+ Standard-H”he/Breite (0.5/0.5).
+
+ 2.12 PROC #ib(2," (2.12)")#draw cm *#ie(2," (PROC)")#
+ (REAL CONST x cm, y cm)
+ - Zeichnet von der aktuellen Position eine Gerade zur cm-Position
+ 'x cm;y cm'.
+
+ 2.13 PROC #ib(2," (2.13)")#draw cm r *#ie(2," (PROC)")#
+ (REAL CONST x cm, REAL CONST y cm)
+ - Zieht von der aktuellen Zeichenposition eine Gerade zur um 'x cm;
+ y cm' verschobenen Zielposition.
+
+ 2.14 PROC #ib(2," (2.14)")#draw r *#ie(2," (PROC)")#
+ (REAL CONST dx, dy)
+ - Zieht von der aktuellen Zeichenposition eine Gerade zur um 'dx;dy'
+ Einheiten verschobenen Zielposition.
+
+ 2.15 PROC #ib(2," (2.15)")#draw r *#ie(2," (PROC)")#
+ (REAL CONST dx, dy, dz)
+ - Zeichnet von der aktuellen Zeichenposition eine Gerade zur um
+ 'dx;dy;dz' Einheiten verschobenen und transformierten 3-D Ziel-
+ position.
+
+ 2.16 PROC #ib(2," (2.16)")#hidden lines *#ie(2," (PROC)")#
+ (BOOL CONST visible)
+ - Schaltet die vektorisierte Speicherung aller zuknftigen Aus-
+ gabe ein (FALSE) bzw. aus.Ist dieser Modus eingeschaltet, so werden
+ alle durch vorheriges Zeichnen entstandenen Fl„chen beim Zeichen
+ bercksichtigt, also nicht bermalt; sie 'verdecken' die weiteren
+ Linien.
+
+ 2.17 PROC #ib(2," (2.17)")#linetype#ie(2," (PROC)")#
+ (INT CONST line no, TEXT CONST bitpattern)
+ - Stellt fr den Linientyp 'line no' das Bitmuster 'bitpattern' ein;
+ wobei der 'bitpattern'-TEXT ausschlieálich aus den Zeichen '0' und
+ '1' bestehen sollte.
+
+ 2.18 PROC #ib(2," (2.18)")#move *#ie(2," (PROC)")#
+ (INT CONST x,y)
+ - Zeichnet von der aktuellen Position eine Gerade zur Position 'x;y'.
+
+ 2.19 PROC #ib(2," (2.19)")#move *#ie(2," (PROC)")#
+ (REAL CONST x, y, z)
+ - Zeichnet von der aktuellen Position eine Gerade zur trans-
+ formierten 3-D-Position 'x;y;z'
+
+ 2.20 PROC #ib(2," (2.20)")#move *#ie(2," (PROC)")#
+ (REAL CONST x, y)
+ - s.o., jedoch fr zweidimensionale Bilder.
+
+ 2.21 PROC #ib(2," (2.21)")#move cm#ie(2," (PROC)")#
+ (REAL CONST x cm, y cm)
+ - Setzt die aktuelle Zeichenposition auf die cm-Position 'x cm,;y cm'.
+
+ 2.22 PROC #ib(2," (2.22)")#move cm r *#ie(2," (PROC)")#
+ (REAL CONST d x cm, d y cm)
+ - Zeichnet von der aktuellen Position eine Gerade zur um
+ 'd x cm;d y cm' verschobenen Zielposition.
+
+ 2.23 PROC #ib(2," (2.23)")#move r *#ie(2," (PROC)")#
+ (REAL CONST d x, d y, d z)
+ - Zeichnet von der aktuellen Position eine Gerade zur um 'd x;d y;d z'
+ Einheiten verschobenen und transformierten Zielposition.
+
+ 2.24 PROC #ib(2," (2.24)")#move r *#ie(2," (PROC)")#
+ (REAL CONST d x, d y)
+ - s.o., jedoch fr zweidimensionale Bilder.
+
+ 2.25 PROC #ib(2," (2.25)")#pen *#ie(2," (PROC)")#
+ (INT CONST background, foreground, thickness, linetype)
+ - Aktiviert fr alle folgenden Ausgaben mit virtuellen Koordi-
+ naten den Hintergrund 'background'; die Schreibfarbe
+ 'foreground'; die Zeichenst„rke 'thickness' in 1/10 mm und den
+ Linientyp 'linetype' (i.d.R. 1-6). Vergleiche 'select pen'.
+
+ 2.26 PROC #ib(2," (2.26)")#reset *#ie(2," (PROC)")#
+ - Die mit 'hidden lines (FALSE)' vektorisiert abgespeicherte
+ Ausgabe wird gel”scht.
+
+ 2.27 PROC #ib(2," (2.27)")#reset linetypes *#ie(2," (PROC)")#
+ - Setzt die Linientypen 1-6 auf Standard-Linientypen: 1 - durch-
+ g„ngige Linie
+ 2 - gepunktete Linie
+ 3 - kurz gestrichelte Linie
+ 4 - lang gestrichelte Linie
+ 5 - Strichpunktlinie
+
+ 2.28 PROC #ib(2," (2.28)")#reset zeichensatz *#ie(2," (PROC)")#
+ - Setzt den Zeichensatz auf den Standard-Zeichensatz 'ZEICHENSATZ'.
+
+ 2.29 PROC #ib(2," (2.29)")#where *#ie(2," (PROC)")#
+ (REAL VAR x, y, z)
+ - Tr„gt die aktuelle Zeichenposition als (retransformierte) 3-D
+ Position in die bergeben Variablen ein.
+
+ 2.30 PROC #ib(2," (2.30)")#where *#ie(2," (PROC)")#
+ (REAL VAR x, y)
+ - s.o., jedoch fr zweidimensionale Bilder.
+
+ 2.31 PROC #ib(2," (2.31)")#zeichensatz *#ie(2," (PROC)")#
+ (TEXT CONST zeichenname)
+ - L„dt den Zeichensatz 'zeichenname' zur Verwendung bei Beschrif-
+ tungen.
+#page#
+ #ib(1)#3.0 Paket: 'plot interface'#ie(1)#
+
+ 3.1 THESAURUS OP #ib(2," (3.1)")#ALL#ie(2," (OP)")#
+ (PLOTTER CONST plotter)
+ - Liefert die Namen der z.Zt. im Spool 'plotter' zur indirekten
+ Graphik-Ausgabe gespoolten task-eigenen PICFILES.
+ Bei Aufruf aus 'GRAPHIK' werden die Namen aller zur Ausgabe
+ gespoolten PICFILES geliefert.
+
+ 3.2 PROC #ib(2," (3.2)")#erase#ie(2," (PROC)")#
+ (TEXT CONST picname, PLOTTER CONST plotter)
+ - L”scht nach Rckfrage das im Spool 'plotter' zur indirekten
+ Graphik-Ausgabe gespoolte task-eigene PICFILE 'picname'.
+ Bei Aufruf aus 'GRAPHIK' ist auch das L”schen fremder zur Ausgabe
+ gespoolter PICFILES m”glich.
+
+ 3.3 PROC #ib(2," (3.3)")#erase#ie(2," (PROC)")#
+ (THESAURUS CONST piclist, PLOTTER CONST plotter)
+ - L”scht im Dialog alle in 'piclist' und im Spool 'plotter' zur in-
+ direkten Graphik-Ausgabe gespoolten task-eigenen PICFILES.
+ Bei Aufruf aus 'GRAPHIK' ist auch das L”schen fremder zur Ausgabe
+ gespoolter PICFILES m”glich.
+
+ 3.4 BOOL PROC #ib(2," (3.4)")#exists#ie(2," (PROC)")#
+ (TEXT CONST picname, PLOTTER CONST plotter)
+ - Liefert zurck, ob z.Zt. im Spool 'plotter' ein task-eigenes PICFILE
+ 'picname' zur indirekten Graphik-Ausgabe gespoolt wird.
+ Bei Aufruf aus 'GRAPHIK' kann auch die Existenz fremder zur Aus-
+ gabe gespoolter PICFILES erfragt werden.
+
+ 3.5 PROC #ib(2," (3.5)")#first#ie(2," (PROC)")#
+ (TEXT CONST picname, PLOTTER CONST plotter)
+ - Zieht das im Spool 'plotter' zur indirekten Ausgabe gespoolte
+ PICFILE 'picname' an die erste Stelle der Warteschlange. Der Auf-
+ ruf ist nur aus 'GRAPHIK' zul„ssig.
+
+ 3.6 PROC #ib(2," (3.6)")#generate plotmanager#ie(2," (PROC)")#
+ - Erzeugt die Task 'PLOT', in der dann im Hintergrund der Plot-
+ manager insertiert wird. Dabei darf 'PLOT' zuvor nicht existieren,
+ und in der Task muá die Datei 'GRAPHIK.Manager' vorhanden sein.
+
+ 3.7 PROC #ib(2," (3.7)")#halt#ie(2," (PROC)")#
+ (PLOTTER CONST plotter)
+ - Unterbindet die weitere indirekte Graphik-Ausgabe aus dem Spool
+ 'plotter'; eine aktuell laufende Ausgabe wird jedoch nicht ab-
+ gebrochen. Der Aufruf ist nur aus 'GRAPHIK' zul„ssig.
+
+ 3.8 PROC #ib(2," (3.8)")#list#ie(2," (PROC)")#
+ (FILE VAR list file, PLOTTER CONST plotter)
+ - Erzeugt in 'list file' eine Inhalts/Aktivit„tsbersicht des Spools
+ 'plotter'.
+
+ 3.9 PROC #ib(2," (3.9)")#list#ie(2," (PROC)")#
+ (PLOTTER CONST plotter)
+ - Zeigt eine Inhalts/Aktivit„tsbersicht des Spools 'plotter'.
+
+ 3.10 THESAURUS PROC #ib(2," (3.10)")#picfiles#ie(2," (PROC)")#
+ - Liefert eine Liste der Namen aller in der Task enthaltenen
+ PICFILES.
+
+ 3.11 PROC #ib(2," (3.11)")#save#ie(2," (PROC)")#
+ (TEXT CONST picname, PLOTTER CONST plotter)
+ - Sendet das PICFILE 'picname' zwecks indirekter Graphik-Ausgabe
+ zum Spool 'plotter'.
+
+ 3.12 PROC #ib(2," (3.12)")#save#ie(2," (PROC)")#
+ (THESAURUS CONST piclist, PLOTTER CONST plotter)
+ - Sendet alle in 'piclist' namentlich enthaltenen PICFILES zwecks
+ indirekter Graphik-Ausgabe zum Spool 'plotter'.
+
+ 3.13 PROC #ib(2," (3.13)")#start#ie(2," (PROC)")#
+ (PLOTTER CONST plotter)
+ - Nimmt die zuvor mit 'halt','wait for halt','stop' oder spoolseitig
+ unterbrochene indirekte Graphik-Ausgabe des Spools 'plotter'
+ wieder auf. Der Aufruf ist nur aus 'GRAPHIK' zul„ssig.
+
+ 3.14 PROC #ib(2," (3.14)")#stop#ie(2," (PROC)")#
+ (PLOTTER CONST plotter)
+ - Unterbricht sofort die aktuell laufende Ausgabe des Spools
+ 'plotter', und unterbindet weitere Ausgaben. Nach Rckfrage wird
+ das PICFILE, das aktuell ausgegeben wurde, erneut an erster
+ Steller der Warteschlange eingetragen.
+
+ 3.15 PROC #ib(2," (3.15)")#wait for halt#ie(2," (PROC)")#
+ (PLOTTER CONST plotter)
+ - Unterbindet die weitere Ausgabe der
+ gespoolten PICFILES, und wartet bis die aktuell laufende Ausgabe
+ beendet ist.
+#page#
+ #ib(1)#4.0 Paket: 'plot'#ie(1)#
+
+ 4.1 PROC #ib(2," (4.1)")#plot *#ie(2," (PROC)")#
+ (PICTURE CONST picture)
+ - Ausgabe der Objektebene 'picture', unter Verwendung des in
+ 'picture' angegebenen Stiftes gem„á seiner aktuellen Einstellung
+ im 'basisplot'.Nur fr Direkt-Ausgaben verwendbar.
+
+ 4.2 PROC #ib(2," (4.2)")#plot *#ie(2," (PROC)")#
+ (PICFILE CONST pf)
+ - Ausgabe des Bildes 'pf' unter vollst„ndiger Bercksichtung der in
+ 'pf' mit 'select pen';'window';'viewport' usw. eingestellten
+ Ausgabeparameter. Nur fr Direkt-Ausgaben verwendbar.
+
+ 4.3 PROC #ib(2," (4.3)")#plot *#ie(2," (PROC)")#
+ (TEXT CONST picfile name)
+ - Direkte oder indirekte Ausgabe des Bildes 'picfile name'.
+ Bei direkter Ausgabe wird obiges 'plot' verwendet; bei indirekter
+ Ausgabe wird das PICFILE an den aktuell eingestellten Spool zur
+ graphischen Ausgabe gesendet.
+#page#
+#bottom#
+#right#Seite %
+#end#
+#head#
+#type("prop")##center#Dokumentation des MPG-Graphik-Systems
+#type("8.5.klein")##center#Teil 3: Konfigurierung der Graphik
+#type("pica.lq")##free(1.0)#
+#end#
+#type("pica")##on("u")##ib(1)#Teil 3: Konfigurierung der Graphik#ie(1)##off("u")##type("prop.lq")#
+#free(0.5)#
+
+
+#type("pica")##on("u")##ib(1)#Teil 3.1: Der Graphik-Konfigurator#ie(1)##off("u")##type("prop.lq")#
+#free(0.5)#
+#goalpage("newconf")#
+ Die MPG-EUMEL-Graphik besitzt eine normierte Schnittstelle zu allen graphischen
+ Endger„ten. Diese wird vom Programm 'GRAPHIK.Configurator' aus verschiede-
+ nen Dateien, die einer gewissen Syntax zu gengen haben, zu einem Paket
+ namens 'device interface' zusammengefgt. Diese Dateien enthalten verschie-
+ dene Informationen und endger„tspezifische ELAN-Prozeduren, die zur
+ Erzeugung graphischer Primitiva wie Gerade, Kreis, Rechteck und zur Be-
+ rechnung der konkreten Abbildung graphischer Objekte sowie zur Realisa-
+ tion von Eingaben ben”tigt werden. Das Konfigurationsprogramm erkennt
+ diese Dateien an der Namensendung '.GCONF', und bietet diese zu
+ Programmbeginn zur Auswahl an.
+ Dann werden die gew„hlten Dateien inhaltlich untersucht und die relevan-
+ ten Informationen, Rmpfe der ben”tigten Prozeduren sowie alle vom Benut-
+ zer zus„tzlich eingetragenen globalen Objekte (globale Variablen,
+ LET-Objekte, zus„tzlich ben”tigte Prozeduren usw.) vom Programm extrahiert
+ und zwischengespeichert.
+ Im letzten Schritt erstellt das Programm schlieálich das Paket 'device
+ interface' in der Datei 'GRAPHIK.Configuration', indem die zwischengespei-
+ cherten Texte sinnvoll zusammengefgt werden.
+ Die ben”tigten Konfigurationsdateien sind relativ einfach zu erstellen, da
+ sich der Programmierer ausschlieálich mit der Realisation der geforderten
+ Leistungen auf einem Endger„t-Typ befassen kann, da die programmseitige
+ Einbindung ins Graphiksystem vom Konfigurationsprogramm vorgenommen
+ wird.
+#page#
+#type("pica")##on("u")##ib(1)#Teil 3.2: Erstellung der Konfigurationsdateien#ie(1)##off("u")##type("prop.lq")#
+#free(0.5)#
+
+ Namensgebung: "<Endger„tname><Kanalangaben>.GCONF"
+ Konfigurationsdateien zur Anbindung eines Endger„t-Types auf der
+ eigenen Station enthalten die ben”tigten ELAN-Quelltexte zur Realisa-
+ tion der geforderten Leistungen und weitere Verwaltungs- und Berech-
+ nungsoperationen.
+ Das Konfigurationsprogramm erkennt die relevanten Daten bzw. Quelltexte
+ dieser Dateien an verschiedenen Pseudo-Schlsselworten bzw. Pseudo-
+ Prozedurdeklarationen, wobei die Namensgebung hinsichtlich des Pro-
+ zedurnamens, der Parameter sowie ihrer Namen vollst„ndig festgelegt ist.
+ Daher ist es unzul„ssig, Parameternamen zu „ndern oder Delimiter
+ (Semikolon, Doppelpunkt) fortzulassen.
+ Derartige Fehler werden jedoch i.d.R. vom Konfigurationsprogramm
+ erkannt und gemeldet, wohingegen Fehler in den Prozedurrmpfen, den
+ zus„tzlichen Prozeduren bzw. das Fehlen zus„tzlich ben”tigter Pro-
+ zeduren nicht erkannt, sondern erst beim Compilieren des Gesamt-Paketes
+ vom ELAN-Compiler gemeldet werden.
+ (Die Korrektur im Gesamt-Paket sollte unterlassen werden, vielmehr ist
+ der Fehler in der entsprechenden Konfigurationsdatei zu beheben, falls
+ nicht einfach die Einbindung eines zus„tzlichen Paketes vergessen
+ wurde.)
+ Zudem ist zu beachten, daá die ben”tigten Prozedurrmpfe vom Kon-
+ figurationsprogramm in Refinements umgewandelt werden, und zus„tz-
+ liche Objekte (Prozeduren, LET-Objekte, Variablen) einfach mit ein-
+ gebunden werden, so daá:
+ - Globale und lokale Variablen eindeutig fr alle! Konfigurations-
+ dateien benannt werden mssen.
+ (Zweckm„ssig: ... VAR endger„tname variablenname)
+ - Zus„tzliche Prozeduren und LET-Objekte ebenso eindeutig benannt
+ werden mssen.
+ - šberflssige Delimiter, die aber vom ELAN-Compiler nicht bem„ngelt
+ werden (z.B. Punkt am Ende des Prozedurrumpfes) nicht vorkommen
+ drfen.
+ - Nicht realisierbare Pseudo-Prozeduren mit leerem Rumpf enthalten
+ sein mssen (z.B. Vordergrund/Hintergrund od. Farben bei
+ Monochrom-Endger„ten)
+ - Prozedur-K”pfe bzw. -Enden allein in einer Zeile und an ihrem Anfang
+ stehen mssen.
+
+ Namensgebung: "ENVIRONMENT.GCONF"
+ Dient zur verwaltungsseitigen Einbindung von Endger„ten anderer
+ Stationen, da fr diese Endger„te nur die Verwaltungsinformationen
+ ben”tigt werden, weil die konkrete Anpassung auf der anderen Station
+ erfolgt.
+ Die in 'ENVIRONMENT.GCONF' zeilenweise enthaltenen Informationen werden
+ dem Benutzer bei der Auswahl der Konfigurationsdateien mit angeboten; er
+ kann sie aber auch 'von Hand' in die THESAURUS-Auswahl einfgen.
+
+ Namensgebung: "Dateizweck" (also beliebig)
+ Darberhinaus existieren weitere Dateien, die globale Prozeduren und
+ weitere Objekte enthalten, die fr verschiedene Endger„t-Anpassungen
+ ntzlich sein k”nnen, wie z.B. unten beschriebene Dateien:
+ - 'std primitives'
+ Enth„lt Prozeduren zur softwareseitigen Emulation von zwar gefor-
+ derten, hardwareseitig aber eventuell nicht bereitgestellten
+ Leistungen wie 'circle' und 'box'.
+ - 'matrix printer'
+ Enth„lt Prozeduren zur Erzeugung von Geraden und Fllmustern auf
+ einer Bitmatrix, die zur graphischen Ausgabe auf Druckern ben”tigt
+ wird.
+ - 'terminal plot'
+ Enth„lt grundlegende Prozeduren zur (behelfsm„áigen) Ausgabe von
+ Graphiken auf Ascii-Terminals (Zeichenorientiert, nicht graphikf„hig)
+
+ Folgende Pseudo-Schlsselworte bzw. Pseudo-Prozeduren werden vom
+ Konfigurationsprogramm erkannt und behandelt:
+
+ #ib(1)#1.0 Pseudo-Schlsselworte#ie(1)#
+
+ 1.1 #ib(2," (1.1)")#COLORS#ie(2,"")#
+ Syntax: COLORS "RGB-Kombinationen";
+ - Dient der Definition der Standard-Farben.
+ - "RGB-Kombinationen": (TEXT) Pro Farbe 3-ziffrige RGB-
+ (Rot-Grn-Blau)-
+ Kombinationen in normierter
+ Notation
+ (jeder Farbanteil wird durch
+ die Ziffern 0-9 dargestellt;
+ sollte das Endger„t dieser
+ Notation nicht gengen, so ist
+ eine anteilige Umrechnung
+ vorzunehmen).
+ Die erste RGB-Kombination
+ wird fr die Hintergrundfarbe
+ verwendet (i.d.R. 000), bei
+ monochromen Endger„ten ist
+ also "000999" einzusetzen.
+
+ 1.2 #ib(2," (1.2)")#EDITOR#ie(2,"")#
+ Syntax: EDITOR;
+ - Schlsselwort, das dem Konfigurationsprogramm anzeigt, daá
+ folgende Eingabeprozeduren vorhanden sind:
+ - 'graphik cursor'
+ - 'get cursor'
+ - 'set marker'
+ Fehlt das Schlsselwort, so k”nnen o.g. Pseudo-Prozeduren weg-
+ gelasssen werden, brauchen also nicht mit leerer Leistung
+ implementiert werden.
+
+ 1.3 #ib(2," (1.3)")#INCLUDE#ie(2,"")#
+ Syntax: INCLUDE "Name der Includedatei";
+ - Schlsselwort, mit dem weitere Dateien in die Konfigurationsdatei
+ textuell eingebunden werden k”nnen (s.o).
+
+ 1.4 #ib(2," (1.4)")#LINK#ie(2,"")#
+ Syntax: LINK <Station>/<Kanal>, .... ;
+ - Dient zur Anbindung mehrerer Endger„te an einen Endger„t-Typ,
+ die hier genannten Kan„le werden eigenst„ndig verwaltet, aber
+ wie das bei 'PLOTTER' definierte Endger„t angesteuert; wobei fr
+ alle Endger„te der gleiche Name gilt, sie also durch die Kanal-
+ nummer unterschieden werden.
+ Durch Kommata getrennt, k”nnen mit dieser Anweisung beliebig
+ viele Endger„te zus„tzlich angebunden werden.
+ - <Station> : (INT) Stationsnummer des Endger„tes
+ (eigene Station)
+ - <Kanal> : (INT) Kanalnummer des Endger„tes
+
+ 1.5 #ib(2," (1.5)")#PLOTTER#ie(2,"")#
+ Syntax: PLOTTER "Endger„tname",<Station>,<Kanal>,
+ <Xpixel>,<Ypixel>,<Xcm>,<Ycm>;
+ - Dient zur Erkennung als Endger„t-Konfigurationsdatei, und zur
+ šbergabe der verwaltungsseitig ben”tigten
+ Endger„t-Spezifikationen:
+ - "Endger„tname": (TEXT) Name des Endger„tes
+ - <Station> : (INT) Stationsnummer des Endger„tes
+ (eigene Station)
+ - <Kanal> : (INT) Kanalnummer des Endger„tes
+ Jedes Endger„t wird ber diese drei Werte eindeutig identifiziert,
+ der Endger„tname kann also mehrfach verwendet werden.
+ - <Xpixel> : (INT) X-Rasterkoordinate des letzten
+ Pixels in X-Richtung (i.d.R
+ adressierbare Pixel - 1)
+ - <Ypixel> : (INT) Y-Rasterkoordinate des letzten
+ Pixels in Y-Richtung (s.o.)
+ - <Xcm> : (REAL) Breite der Zeichenfl„che in cm.
+ - <Ycm> : (REAL) H”he der Zeiuchenfl„che in cm.
+ (M”glichst genau ausmessen od. berechnen, um Verzerrungen zu
+ vermeiden)
+ 'PLOTTER' muá als erstes in der Konfigurationsdatei stehen!
+
+ #ib(1)#2.0 Pseudo-Prozeduren#ie(1)#
+
+ 2.1 PROC #ib(2," (2.1)")#background#ie(2," (PROC)")#
+ Syntax: PROC background (INT VAR type):
+ - Stellt die Hintergrundfarbe 'type' ein. Ist bei monochromen End-
+ ger„ten mit leerer Leistung zu implementieren.In 'type' ist die
+ tats„chlich eingestellte Hintergrundfarbe angegeben, womit die
+ erbrachte Leistung kontrolliert werden kann.
+
+ 2.2 PROC #ib(2," (2.2)")#box#ie(2," (PROC)")#
+ Syntax: PROC box (INT CONST x1, y1, x2, y2, pattern):
+ - Zeichnet ein Rechteck mit den gegenberliegenden Ecken
+ 'x1;y1/x2;y2'. Sollte das Endger„t diese Leistung nicht erbringen,
+ so muá 'std box' aus 'std.GCONF' mit gleichen Parametern aufge-
+ rufen werden.
+ 'pattern' als Fllmuster kann endger„tspezifisch implementiert
+ werden, wobei von System nur 'pattern' = 0 verwendet wird, was ein
+ ungeflltes Rechteck anfordert.
+
+ 2.3 PROC #ib(2," (2.3)")#circle#ie(2," (PROC)")#
+ Syntax: PROC circle (INT CONST x, y, rad, from, to):
+ - Zeichnet einen Kreis oder ein Kreissegment an den Raster-
+ Koordinaten 'x;y', die auch neue Zeichenposition werden. 'rad' gibt
+ den Radius und 'from,to' den Start bzw. Endwinkel im mathematisch
+ positivem Sinne an.
+ Sollte das Endger„t diese Leistung nicht erbringen, so muá 'std
+ circle' aus 'std.GCONF' mit gleichen Parametern aufgerufen werden.
+
+ 2.4 PROC #ib(2," (2.4)")#clear#ie(2," (PROC)")#
+ Syntax: PROC clear:
+ - L”scht den Bildschirm bzw. initialisiert das Ausgabe-Raster.
+ Die Zeichenposition wird '0;0' und die Standardfarben werden
+ eingestellt.
+
+ 2.5 PROC #ib(2," (2.5)")#drawto#ie(2," (PROC)")#
+ Syntax: PROC drawto (INT CONST x, y):
+ - Zieht von der aktuellen Zeichenposition eine Gerade zu den Ko-
+ ordinaten 'x;y', die Zeichenposition wird entsprechend ge„ndert.
+
+ 2.6 PROC #ib(2," (2.6)")#endplot#ie(2," (PROC)")#
+ Syntax: PROC endplot:
+ - Schlieát die Graphik-Ausgabe auf einem Endger„t ab; evtl. Wechsel
+ in den Text-Modus, ggf. Cursor einschalten.
+ Bei Terminals sollte der Bildschirm nicht gel”scht werden.
+
+ 2.7 PROC #ib(2," (2.7)")#fill#ie(2," (PROC)")#
+ Syntax: PROC fill (INT CONST x, y, pattern):
+ - Zus„tzliche vom System nicht verwendete Leistung zum Fllen von
+ Polygonen (rundum geschlossen), wobei die genau erbrachte Lei-
+ stung und die Bedingungen endger„tspezifisch sind.
+
+ 2.8 PROC #ib(2," (2.8)")#foreground#ie(2," (PROC)")#
+ Syntax: PROC foreground (INT VAR type):
+ - Stellt die Vordergrundfarbe 'type' ein. Ist bei monochromen
+ Endger„ten mit leerer Leistung zu implementieren.In 'type' ist die
+ tats„chlich eingestellte Hintergrundfarbe angegeben, womit die
+ erbrachte Leistung kontrolliert werden kann.
+
+ 2.9 PROC #ib(2," (2.9)")#get cursor#ie(2," (PROC)")#
+ Syntax: PROC get cursor (INT VAR x, y, TEXT VAR exit char):
+ - Wartet auf eine Eingabe vom Endger„t, wobei der Cursor beweglich
+ bleiben muá. Wird eine Taste gedrckt, so wird deren Code in 'exit
+ char' und die aktuelle Position des Cursors in 'x;y' eingetragen.
+ Der Cursor sollte nur innerhalb dieser Prozedur beweglich sein,
+ aber immer sichtbar bleiben (falls er eingeschaltet ist).
+
+ 2.10 PROC #ib(2," (2.10)")#graphik cursor#ie(2," (PROC)")#
+ Syntax: PROC graphik cursor (INT CONST x, y, BOOL CONST on):
+ - Schaltet einen endger„tseitig vorhandenen graphischen Cursor
+ (i.d.R Fadenkreuz) ein oder aus bzw. setzt ihn auf eine bestimmte
+ Position.
+ Mit 'on' = TRUE wird der Cursor dauerhaft! eingeschaltet bzw. neu
+ positioniert, falls er bereits eingeschaltet war.
+ Mit 'on' = FALSE wird er grunds„tzlich abgeschaltet.
+ Durch Einschalten des Cursors wird die Wirkung von 'home'
+ ver„ndert:
+ normal - 'home' positioniert die Zeichenposition auf
+ '0;0'
+ cursor - 'home' positioniert die Zeichenposition und
+ den graphischen Cursor auf die Mitte der
+ Zeichenfl„che.
+
+ 2.11 PROC #ib(2," (2.11)")#home#ie(2," (PROC)")#
+ Syntax: PROC home:
+ - Die Zeichenposition wird auf '0;0' eingestellt; ist ein graphischer
+ Cursor eingeschaltet, so sollte dieser, sowie die Zeichenposition,
+ jedoch auf den Mittelpunkt der Zeichenfl„che gesetzt werden.
+
+ 2.12 PROC #ib(2," (2.12)")#initplot#ie(2," (PROC)")#
+ Syntax: PROC initplot:
+ - Bereitet die Graphik-Ausgabe auf einem Endger„t vor; evtl.
+ Wechsel in den Graphik-Modus, ggf. Cursor abschalten.
+ Bei Terminals sollte der Bildschirm nicht gel”scht werden.
+
+ 2.13 PROC #ib(2," (2.13)")#moveto#ie(2," (PROC)")#
+ Syntax: PROC moveto (INT CONST x, y):
+ - Die Zeichenposition wird auf die Koordinaten 'x;y' gesetzt, bei
+ šberschreitung der Zeichenfl„che ist die Wirkung undefiniert.
+
+ 2.14 PROC #ib(2," (2.14)")#prepare#ie(2," (PROC)")#
+ Syntax: PROC prepare:
+ - Bereitet die Ausgabe auf einem Kanal vor.
+ Die eigene Task sollte an den Kanal angekoppelt, und andere Tasks
+ ggf. am Ankoppeln gehindert bzw. abgekoppelt werden (z.B. der
+ PRINTER-Server bei Drucker-Graphik). Es darf erst nach erfolg-
+ reichem Abschluá der Aktion zurckgekehrt werden.
+
+ 2.15 PROC #ib(2," (2.15)")#set marker#ie(2," (PROC)")#
+ Syntax: PROC set marker (INT CONST x, y, type):
+ - Zeichnet an der Position 'x;y', die auch neue Zeichenposition wird,
+ eine Markierung. Folgende Markierungsarten k”nnen systemseitig
+ verwendet werden:
+ 0 - Kreuz '+'
+ 1 - Kreuz diagonal 'x'
+ Weitere Typen k”nnen endger„tspezifisch implementiert werden.
+
+ 2.16 PROC #ib(2," (2.16)")#setpalette#ie(2," (PROC)")#
+ Syntax: PROC setpalette:
+ - Stellt die aktuell eingestellten RGB-Kombinationen auf dem End-
+ ger„t ein. Dazu sind die vom Konfigurationsprogramm
+ hinzugefgten Prozeduren 'colors' und 'color' zu verwenden:
+ INT PROC colors
+ - Liefert die Anzahl der fr das Endger„t m”glichen Farben
+ (abgeleitet aus den mit 'COLOR' angebenen
+ Standard-Kombinationen).
+ INT PROC color (INT CONST no)
+ - Liefert die normierte RGB-Kombination der fr 'no' ein-
+ gestellten Farbe (0 - 999). Die Rckgabe von 'maxint' (32767)
+ bedeutet: Farbe nicht initialisiert oder existiert nicht.
+
+ 2.17 PROC #ib(2," (2.17)")#setpixel#ie(2," (PROC)")#
+ Syntax: PROC setpixel (INT CONST x, y):
+ - Setzt ein Pixel an den Raster-Koordinaten 'x;y'.
+#page#
+#bottom#
+#right#Seite %
+#end#
+#head#
+#type("prop")##center#Dokumentation des MPG-Graphik-Systems
+#type("8.5.klein")##center#Teil 4: Graphik-Applikationen
+#type("pica.lq")##free(1.0)#
+#end#
+#type("pica")##on("u")##ib(1)#Teil 4: Graphik-Applikationen#ie(1)##off("u")##type("prop.lq")#
+#free(0.5)#
+
+
+#type("pica")##on("u")##ib(1)#Teil 4.1: Der Funktionenplotter 'FKT'#ie(1)##off("u")##type("prop.lq")#
+#free(0.5)#
+
+ Mit diesem Programmpaket kann man fr beliebige reelle und reellwertige
+ Funktionen Graphen erstellen. Diese Graphen werden im System gespeichert.
+
+ Zur Ausgabe der erstellten Graphen stehen alle graphikf„higen Endger„te
+ zur Verfgung.
+
+ #ib(1)#1.0 Allgemeines ber FKT#ie(1)#
+ Zu einer Zeichnung, wie sie mit 'FKT' erstellt werden kann, geh”ren
+ folgende Eigenschaften:
+ - Der Name der Zeichnung (zum Wiederfinden)
+ - Das Format
+ - Der Graph mit den Achsen bzw. dem Rahmen.
+
+ Es k”nnen beliebig viele Zeichnungen angelegt und aufbewahrt werden,
+ wobei der Name aller Zeichnungen mit "PICFILE." beginnt.
+
+ Es wird von FKT zwischen den Definitions- und Wertebereich einerseits
+ und dem Format anderseits unterschieden:
+ - Der Definitionsbereich wird vom Benutzer gew„hlt. Er gibt das
+ Intervall an, ber dem der Graph gezeichnet wird. Der
+ Wertebereich wird vom Rechner automatisch ermittelt.
+ - Das Format besteht aus der Angabe von vier Werten, die Auskunft
+ geben ber die maximale Ausdehnung der Koordinatenachsen, wobei
+ die Zeichnung auf den Endger„ten stets so abgebildet wird, daá sie
+ unverzerrt in maximaler Gr”áe (also im gr”átm”glichen Quadrat)
+ gezeichnet wird.
+
+ Der Funktionenplotter FKT ist in allen Sohntasks von 'GRAPHIK' verfg-
+ bar, zus„tzlich existiert die Task 'FKT', in der das FKT-Menue als
+ Kommandoebene verwendet wird.
+
+ #ib(1)#2.0 Das FKT-Menue#ie(1)#
+ Das Menue des Funktionenplotters ist wie folgt aufgebaut:
+ - in der obersten Zeile wird der eingegebene Funktionsterm angezeigt
+ - die nachfolgende Zeile zeigt in eckigen Klammern den Definitions-
+ bereich und die Schachtelung des Intervalles, ber dem der Graph
+ gezeichnet wird.
+ - dann folgt ebenfalls in eckigen Klammern der von FKT selbst zu
+ ermittelnde Wertebereich der Funktion innerhalb des zuvor
+ definierten Intervalles.
+ Wird kein Funktionsterm angezeigt, oder erscheinen in den eckigen
+ Klammern Sternchen, so wurde noch kein Funktionsterm bzw.
+ Definitionsbereich eingegeben, oder der Wertebereich noch nicht
+ ermittelt.
+ - Der Bereich zwischen o.g Anzeige und der Auflistung der Menuepunkte
+ ist der Dialogbereich, in dem weitere Anfragen an den Benutzer oder
+ auch Fehlermeldungen erscheinen.
+ - Unterhalb der Bildschirmmitte werden die unten beschriebenen
+ Menuepunkte zur Auswahl aufgefhrt.
+ - Dann folgt der Endger„t-Auswahlbereich, das Endger„t, auf dem eine
+ Zeichnung ausgegeben werden soll, kann mit den Tasten 'Links' bzw.
+ 'Rechts' eingestellt werden, wobei der Name des aktuell eingestellten
+ Endger„tes invertiert erscheint.
+ - Als unterste Zeile der FKT-Tapete folgt der Eingabebereich, hier wird
+ der Benutzer zur Eingabe eines bei den Menuepunkten genannten
+ Buchstabens aufgefordert, und dieser bei einem zul„ssigen
+ Tastendruck dort angezeigt.
+
+ #ib(1)#3.0 FKT-Menuepunkte#ie(1)#
+
+ Jede Eingabe oder Operation kann durch Drcken der Taste 'ESC'
+ abgebrochen werden, die Eingabe wird dann ignoriert, und im Dialog-
+ bereich erscheint die Fehlermeldung 'F E H L E R : Abgebrochen'.
+
+ 3.1 #ib(2," (3.1)")#(f) Funktionsterm eingeben#ie(2,"")#
+ Im Dialogbereich wird die Eingabe des Funktionsterms erwartet, wobei
+ als Variable im Term 'x' verwendet werden muá.
+ Es stehen alle mathematischen Funktionen des EUMEL-Systems zur
+ Verfgung, sofern sie reelle Werte (REAL) zurckliefern.
+ Beispiele von Funktionstermen (alternative M”glichkeiten in eckigen,
+ Erkl„rungen in runden Klammern):
+
+ 2*x
+ [2x]
+ 2x*x + 3x - 5
+ [2.0*x*x + 3.0*x - 5.0]
+ 0.7 * sqrt (x) (sqrt : Quadratwurzel aus)
+ log10 (x) (log10 : 10-er Logar.)
+ ln (3x) (ln : Nat. Logar.)
+ 2**x (** : Potenzieren)
+ exp (1/x)
+ [e**(1/x)] (exp : Expon.Fktn)
+ arctan (pi*x) (arctan: arkus tangens )
+ sin (x) (sin : Sinus in Radiant )
+ sind (x) (sind : Sinus in Altgrad )
+ 1/(x*x+1)
+
+ Die Klammern drfen dabei NICHT weggelassen werden, es sind nur
+ runde Klammern zul„ssig, auch geschachtelt, wie z.B. in:
+
+ log10 (abs (sin (x) + 5)) (abs : Absolutbetrag )
+
+ Ein Dezimalkomma gibt es nicht, sondern nur den Dezimalpunkt.
+
+ Beispiele von abschnittsweise definierten Funktionen:
+
+ IF x < 5 THEN x*x ELSE sqrt (x - 5) END IF
+ IF x = 0 THEN 0 ELSE 1/x END IF
+ IF x < 0 THEN x ELIF x = 0 THEN 1 ELSE x*x END IF
+
+ Die sog. Schlsselworte "IF" "THEN" "ELIF" "ELSE" "END IF" mssen
+ dabei immer in der angegebenen Form (alle, in der angegebenen Reihen-
+ folge, vollst„ndig aus Groábuchstaben) auftauchen.
+
+ IF --+--> THEN --+--> ELSE --> END IF
+ | |
+ | |
+ +--- ELIF --+
+
+
+ Es k”nnen bei IF auch mehrere Bedingungen mit logischem OR oder AND
+ verknpft werden:
+
+ IF x <= 0 OR x > 100 THEN 0 ELSE x*x END IF
+
+ Hat die Funktion eine Definitionslcke an einer bereits bekannten
+ Stelle, so kann dies im Term auf folgende Art bercksichtigt werden,
+ z.B.:
+
+ IF x = 0 THEN luecke ELSE 1/x END IF
+ IF x < -0.05 THEN -1/x ELIF x > 0.05 THEN 1/x ELSE luecke END IF
+
+ Taucht eine unvorhergesehene Definitionslcke auf, so wird beim
+ Erstellen des Wertebereichs eine entspr. Fehlermeldung ausgegeben.
+ Dann muá entweder der Funktionsterm durch Fallunterscheidung (s.o.)
+ angepaát, oder der Definitionsbereich ge„ndert werden.
+
+ Graphen mit Definitionslcken k”nnen auch in zwei oder mehr Teilen
+ erstellt werden, n„mlich jeweils ber den zusammenh„ngenden
+ Definitionsintervallen, die keine Lcke enthalten. Dazu muá jeweils
+ die Zeichnung erg„nzt (siehe '(z) Zeichnung anfertigen') werden.
+
+ Fehlerquelle: Der Funktionsterm ist fehlerhaft.
+ Es tauchen z.B. dem Rechner unbekannte Operationen auf,
+ Multiplikationszeichen fehlen, andere Symbole als 'x' wurden
+ fr die Variable benutzt, 'END IF' fehlt o.„.
+
+ 3.2 #ib(2," (3.2)")#(d) Definitionsbereich waehlen#ie(2,"")#
+ Im Dialogbereich wird die Eingabe von Unter- und Obergrenze erwartet,
+ wobei Untergrenze < Obergrenze gilt, ansonsten wird die Eingabe der
+ Obergrenze nochmals gefordert.
+ Erscheinen in der zug. Informationszeile Sterne, so ist die gew„hlte
+ Genauigkeit zu groá und sollte umgew„hlt werden.
+
+ Fehlerquelle: Der Funktionsterm ist noch nicht vorhanden.
+
+ 3.3 #ib(2," (3.3)")#(w) Wertebereich ermitteln lassen#ie(2,"")#
+ Es werden automatisch der grӇte und kleinste Funktionswert
+ ermittelt, also die tats„chlichen Grenzen des Wertebereichs.
+ Erscheinen in der zug. Informationszeile Sterne, so ist die gew„hlte
+ Genauigkeit zu groá und sollte umgew„hlt werden.
+
+ 3.4 #ib(2," (3.4)")#(z) Zeichnung anfertigen#ie(2,"")#
+ Eine Zeichnung kann auf allen zur Verfgung stehenden Ger„ten
+ ausgegeben werden, wenn sie erzeugt ist.
+ Mit diesem Menuepunkt werden die Zeichnungen nur erstellt, d.h. der
+ Graph erscheint noch nicht auf einem Ausgabeger„t.
+ Diese Zeichnungen werden dann im System aufbewahrt und k”nnen
+ somit mehrfach ausgegeben werden.
+
+ Im Dialogbereich wird zun„chst der Name der Zeichnung angefordert,
+ dieser beginnt grunds„tzlich mit dem Prefix 'PICFILE.', das nicht
+ ver„ndert werden kann.
+ Dabei wird als Erg„nzung des Namens der Funktionsterm angeboten, so
+ daá die Zeichnung z.B. 'PICFILE.sin(x)' heiát.
+ Dieser Teil des Namens kann aber frei ver„ndert werden.
+ Existiert bereits eine Zeichnung gleichen Namens, so erscheint im
+ Dialogbereich eine Anfrage, wie verfahren werden soll, wobei
+ folgende M”glichkeiten genannt werden:
+
+ - <l> : Die alte Zeichnung wird gel”scht.
+ - <n> : Der Name wird erneut zur Žnderung angeboten.
+ - <e> : Die neue Zeichnung, welche hiernach erstellt wird, wird an die
+ schon existierende Zeichnung angah„ngt. Dies ist vorteil-
+ haft, wenn mehrere od. abschnittsweise definierte Graphen
+ auf in eine Zeichnung kommen sollen.
+ Die Eingabe anderer Buchstaben wird ignoriert.
+
+ Ansonsten wird eine Zeichnung erstellt, die unter dem eingegebenen
+ Namen abgelegt wird.
+
+ Danach wird im Dialogbereich erfragt, ob und wie das Format der
+ Zeichnung ge„ndert werden soll.
+ Nachdem die Zeichnung erstellt wurde, was durch den
+ Sttzpunkt-Z„hler angezeigt wird, muá noch die Farbe, in der der
+ Graph gezeichnet werden soll eingegeben werden.
+
+ Fehlerquelle: Wertebereich ist noch nicht bestimmt (siehe 4).
+ Unzul„essiges Format: ymax ist kleiner oder gleich
+ ymin, bzw. xmax ist kleiner
+ oder gleich xmin.
+
+ 3.5 #ib(2," (3.5)")#(a) Ausgabe der Zeichnung auf Endger„t#ie(2,"")#
+ Im Dialogbereich wird der Name der auszugebenden Zeichnung erfragt,
+ wobei die zuletzt bearbeitete Zeichnung angeboten wird.
+ Die Wahl von '?' als Namen der Zeichnung ('PICFILE.?') fhrt zu einer
+ Auswahl aller vorhanden Bilder, von denen eines zur Ausgabe
+ ausgew„hlt werden kann.
+ Danach kann wie oben nochmals das Format variiert werden.
+ Dann wird im Dialogbereich die šberschrift der Zeichnung erfragt,
+ wobei der Funktionsterm angeboten wird. Die šberschrift erscheint
+ zentriert am oberen Rand.
+ Je nach Lage des Ursprungs (innerhalb od. auáerhalb der Zeichnung)
+ kann die Ausgabe mit Koordinatensystem od. mit Rahmen gew„hlt
+ werden, liegt der Ursprung nicht innerhalb der Zeichnung, so wird
+ grunds„tzlich der Rahmen verwendet.
+ Zum Abschluá wird dann die Farbgebung von Koordinatensystem bzw.
+ Rahmen sowie der šberschrift erfragt, dann wird die Zeichnung auf
+ dem im unteren Teil eingestelltem Endger„t ausgegeben.
+
+ 3.6 #ib(2," (3.6)")#(t) Wertetafel erstellen lassen#ie(2,"")#
+ In dem gew„hlten Definitionsbereich kann eine Wertetafel erstellt
+ werden, die in einer von Ihnen gewnschten Schrittweite ermittelte
+ Funktionswerte zeigt.
+ Zun„chst wird die Schrittweite erfragt, dann die von FKT formatiert
+ erstellte Wertetafel gezeigt.
+ Diese befindet sich in einer Datei, die den Namen des zugeh”rigen
+ Funktionsterms tr„gt, existiert diese bereits, so wird die Wertetafel
+ erg„nzt.
+ Enth„lt diese Tafel Sterne, so mssen Sie die Genauigkeit umw„hlen
+ und die Tafel neu erstellen lassen.
+ Nach Verlassen der Anzeige wird noch gefragt, ob die Wertetafel
+ gedruckt, und ob sie aufbewahrt werden soll.
+
+ Fehlerquelle: Definitionsbereich bzw. Funktionsterm ist noch nicht
+ gew„hlt.
+ Die Schrittweite wurde zu klein gew„hlt. Sie muá so
+ groá sein, daá nicht mehr als 512 Werte zu berechnen
+ sind.
+
+ 3.7 #ib(2," (3.7)")#(l) Zeichnungen auflisten#ie(2,"")#
+ Es wird eine Namesliste aller vorhandenen Zeichnungen gezeigt.
+
+ 3.8 #ib(2," (3.8)")#(?) Hilfestellung#ie(2,"")#
+ Es wird eine Kurzanleitung gezeigt.
+
+ 3.9 #ib(2," (3.9)")#(q) in die Kommandoebene zurck#ie(2,"")#
+ Die Arbeit mit dem Funktionsplotter wird beendet, in normalen Tasks
+ erscheint die Ebene, aus der 'FKT' mit 'fktplot' aufgerufen wurde.
+ Wird die Task 'FKT' mit 'q' verlassen, so wird dagegen die Task
+ abgekoppelt und alle in ihr enthaltenen Zeichnungen gel”scht!
+
+ 3.10 #ib(2," (3.10)")#(s) Anzahl der Sttzpunkte waehlen#ie(2,"")#
+ Bei der Ermittlung des Wertebereiches und beim Erstellen des Funk-
+ tionsgraphen ist es wegen der Endlichkeit des Computers nicht m”g-
+ lich, alle Punkte des Definitionsbereiches zu benutzen. Deshalb wird
+ der Definitionsbereich diskretisiert, d.h. es wird eine endliche An-
+ zahl von Sttzpunkten ausgesucht. Diese Sttzpunkte liegen gleich-
+ verteilt ber dem Definitionsbereich. Die Mindestanzahl ist 2, d.h. als
+ Sttzpunkte werden nur die beiden Randwerte zugelassen. Aus
+ technischen Grnden ist die H”chstgrenze 512.
+
+ Fehlerquelle: Zahl der Sttzpunkte ist fehlerhaft.
+ Nur ganze Zahlen aus dem Intervall [2;512] zul„ssig.
+
+ 3.11 #ib(2," (3.11)")#(n) Nachkommastellenzahl w„hlen#ie(2,"")#
+ Hier kann die Zahl der angezeigten Nachkommastellen eingestellt
+ werden (intern wird immer h”chstm”gliche Genauigkeit verwendet).
+ Maximal sind neun Nachkommastellen zul„ssigt, jedoch kann die
+ Genauigkeit zu groá fr das Anzeigeformat werden; dann erscheinen
+ in der Anzeige Sterne (*************).
+ Es gilt grunds„tzlich:
+ Anzahl Vorkommastellen + Anz. Nachkommastellen = 12.
+
+ 3.12 #ib(2," (3.12)")#(e) Arbeit beenden#ie(2,"")#
+ Die Arbeit mit 'FKT' wird abgeschlossen, die Task vom Terminal
+ abgekoppelt. Fr jede Task bleibt dabei FKT das laufende Programm,
+ d.h. nach erneutem Ankoppeln erscheint wieder die FKT-Tapete. In der
+ Task FKT bleiben die Zeichnungen bei Verlassen mit 'e' erhalten (im
+ Gegensatz zum Verlassen mit 'q').
+
+ 3.13 #ib(2," (3.13)")#(L) Zeichnungen loeschen#ie(2,"")#
+ Es erscheint eine Namensliste aller in der Task enthaltenen
+ Zeichnungen. Die dann ausgew„hlten Zeichnungen werden nach noch-
+ maliger Rckfrage gel”scht.
+
+ 3.14 #ib(2," (3.14)")#(A) Zeichnungen archivieren#ie(2,"")#
+ Nach Aufruf dieses Menuepunktes k”nnen Zeichnungen zu anderen
+ Tasks geschickt, oder auch auf Diskette geschrieben werden.
+ Dazu wird der MPG-Dateimanager 'dm' verwendet.
+
+ 3.15 #ib(2," (3.15)")#(b) Zeichnungen beschriften#ie(2,"")#
+ Mit diesem Menuepunkt k”nnen Zeichnungen frei beschriftet werden.
+ Zun„chst wird im Dialogbereich erfragt, wie mit bereits bestehenden
+ Beschriftungen verfahren werden soll:
+
+ - <e> : Die nachfolgenden Texte werden zus„tzlich zu den schon
+ vorhandenen Beschriftungen angefgt.
+ - <l> : Die vorhandenen Beschriftungen werden gel”scht, und es wird
+ zum Menue zurckgekehrt.
+ - <a> : Die Operation wird abgebrochen.
+
+ Nun wird die Farbgebung aller Beschriftungen erfragt,
+ danach wird das aktuelle Format der Zeichnung gezeigt, was bei der
+ Positionierung hilfreich sein kann.
+ Nach der nun geforderten Eingabe des Beschriftungstextes wird die
+ Positionierung der Beschriftung in zwei Weisen angeboten:
+ - in cm : Die nachfolgend einzugebenden Werte werden als
+ cm-Angabe relativ zur unteren linken Ecke der Zeichnung
+ aufgefaát.
+ - in REAL: Die nachfolgend einzugebenden Werte werden als
+ Koordinatenangabe im Koordinatensystem der erstellten
+ Zeichnung aufgefaát ('0;0' demnach im Ursprung) Nach
+ Eingabe o.g. Werte wird noch die Texth”he und Breite erfragt, wobei die
+ eingegebenen Werte als mm-Angaben aufgef„át werden (Standard: 5 * 5
+ mm).
+ Anschlieáend wird erfragt, ob noch weitere Beschriftungen
+ vorgenommen werden sollen.
+
+ Fehlerquelle: Zeichnung existiert nicht.
+#page#
+
+#type("pica")##on("u")##ib(1)#Teil 4.2: Die TURTLE-Graphik#ie(1)##off("u")##type("prop.lq")#
+#free(0.5)#
+
+ Die TURTLE-Graphik bietet die M”glichkeit, sehr einfach zweidimensionale
+ Zeichnungen zu erstellen. Sie basiert auf dem in LOGO verwendeten Modell, in
+ dem eine Zeichenposition in jeweils eine bestimmte Richtung vorw„rts bzw.
+ rckw„rts bewegt werden kann, und die Zeichenrichtung ver„ndert werden
+ kann.Bei den Bewegungen, die vornehmlich relativ zur alten Position bzw.
+ Zeichenrichtung ausgefhrt werden, kann dann eine Linie hinterlassen
+ werden. Diese Art der Graphik eignet sich insbesondere fr Programm-
+ gesteuerte Zeichnungen, wie z.B. die rekursiven 'Sierpinski' - bzw. 'Hilbert'-
+ "Funktionen".
+
+ Die Koordinaten bewegen sich im Intervall von [-500.0,500.0].
+ (0,0) liegt dabei in der Bildschirmmitte und ist auch die Anfangsposition.
+ Der Anfangswinkel ist 0. Winkel werden in Grad angegeben.
+
+ #ib(1)#1.0 Paket: 'turtlegraphics'#ie(1)#
+
+ 1.1 REAL PROC #ib(2," (1.1)")#angle#ie(2," (PROC)")#
+ - liefert den momentanen Winkel zwischen Zeichenrichtung und
+ X-Achse.
+
+ 1.2 PROC #ib(2," (1.2)")#turnto#ie(2," (PROC)")#
+ (REAL CONST w)
+ - Die Zeichenrichtung wird absolut auf den Winkel 'w' als Winkel
+ zwischen Zeichenrichtung und X-Achse eingestellt.
+
+ 1.3 PROC #ib(2," (1.3)")#forward#ie(2," (PROC)")#
+ (REAL CONST s)
+ - Die Zeichenposition wird in Zeichenrichtung um die Strecke 's'
+ verschoben, wobei ggf. gezeichnet wird.
+
+ 1.4 PROC #ib(2," (1.4)")#penup#ie(2," (PROC)")#
+ - Der Zeichenstift wird abgehoben, Bewegungen erzeugen keine
+ Linien mehr.
+
+ 1.5 PROC #ib(2," (1.5)")#forward to#ie(2," (PROC)")#
+ (REAL CONST x,y)
+ - Die Zeichenposition wird absolut auf die Position 'x;y' gesetzt, die
+ Zeichenrichtung wird nicht ver„ndert.
+
+ 1.6 PROC #ib(2," (1.6)")#endturtle#ie(2," (PROC)")#
+ - Wurde die Graphik im Direktmodus ('begin turtle' ohne Parameter),
+ also auch sofort sichtbar erzeugt, so wird die Graphikausgabe in
+ blicher Weise beendet, sonst nunmehr das erzeugte PICFILE
+ ausgegeben.
+
+ 1.7 PROC #ib(2," (1.7)")#pendown#ie(2," (PROC)")#
+ - Der Zeichenstift wird gesenkt, Bewegungen erzeugen Linien.
+
+ 1.8 PROC #ib(2," (1.8)")#beginturtle#ie(2," (PROC)")#
+ (TEXT CONST picfile name)
+ - ”ffnet ein PICFILE 'picfile name', in das alle Aktionen eingetragen
+ werden. Auf dem Bildschirm geschieht nichts. Ist das Picfile schon
+ vorhanden, werden die Aktionen hinzugefgt.
+
+ 1.9 PROC #ib(2," (1.9)")#beginturtle#ie(2," (PROC)")#
+ - Leitet die direkte graphische Ausgabe einer TURTLE-Graphik ein,
+ alle Aktionen werden sofort auf dem Bildschirm sichtbar.
+
+ 1.10 PROC #ib(2," (1.10)")#turn#ie(2," (PROC)")#
+ (REAL CONST w)
+ - Dreht die Zeichenposition um 'w'-Grad im mathematisch positiven
+ Sinne.
+
+ 1.11 BOOL PROC #ib(2," (1.11)")#pen#ie(2," (PROC)")#
+ - Liefert zurck, ob der Zeichenstift oben (FALSE) oder unten (TRUE)
+ ist, also ob Bewegungen Linien hervorrufen oder nicht.
+
+ 1.12 PROC #ib(2," (1.12)")#getturtle#ie(2," (PROC)")#
+ - In die bergebenen Variablen wird die aktuelle Zeichenposition
+ absolut eingetragen.
+#page#
+ Diese Dokumentation und die einzelnen Programme wurden mit gr”átm”glicher
+ Sorgfalt erstellt bzw. weiterentwickelt.
+ Dennoch kann keine Fehlerfreiheit garantiert oder die Haftung fr evtl. aus
+ Fehlern resultierende Folgen bernommen werden.
+ Fr Hinweise auf Fehler sind die Autoren stets dankbar.
+#page#
+#bottom off#
+#head#
+#type("prop")##center#Dokumentation des MPG-Graphik-Systems
+#type("8.5.klein")##center#Stichwortverzeichnis
+#type("pica.lq")##free(1.0)#
+#end#
+#type("pica")##on("u")##ib(1)#Stichwortverzeichnis#ie(1)##off("u")##type("prop.lq")#
+#free(0.5)#
+(a) Ausgabe der Zeichnung auf Endger„t ........... 41 (3.5)
+actual plotter (PROC) ............................ 17 (4.4)
+ALL (OP) ......................................... 27 (3.1)
+angle (PROC) ..................................... 44 (1.1)
+(A) Zeichnungen archivieren ...................... 42 (3.14)
+background * (PROC) .............................. 13 (3.4), 13 (3.5), 19 (1.1),
+ 19 (1.2), 34 (2.1)
+bar * (PROC) ..................................... 8 (2.3), 23 (2.1), 23 (2.2)
+beginplot (PROC) ................................. 23 (2.3)
+beginturtle (PROC) ............................... 45 (1.9), 45 (1.8)
+box (PROC) ....................................... 19 (1.3), 23 (2.4), 34 (2.2)
+(b) Zeichnungen beschriften ...................... 42 (3.15)
+CAT * (OP) ....................................... 8 (2.4)
+channel (PROC) ................................... 17 (4.5)
+circle (PROC) .................................... 8 (2.5), 19 (1.4), 24 (2.5),
+ 34 (2.3)
+clear (PROC) ..................................... 19 (1.5), 19 (1.6), 34 (2.4)
+clearspool ....................................... 3 (2.2)
+clippedline (PROC) ............................... 5 (1.1)
+color (PROC) ..................................... 19 (1.7)
+COLORS ........................................... 32 (1.1)
+colors (PROC) .................................... 20 (1.8)
+(d) Definitionsbereich waehlen ................... 39 (3.2)
+delete picture * (PROC) .......................... 13 (3.6)
+dim * (PROC) ..................................... 8 (2.6)
+down * (PROC) .................................... 13 (3.7), 13 (3.8)
+draw cm * (PROC) ................................. 9 (2.11), 24 (2.12)
+draw cm r * (PROC) ............................... 9 (2.12), 24 (2.13)
+drawingarea * (PROC) ............................. 5 (1.2), 17 (4.6), 17 (4.7)
+draw * (PROC) .................................... 8 (2.8), 8 (2.7), 9 (2.10),
+ 9 (2.9), 24 (2.6), 24 (2.9),
+ 24 (2.8), 24 (2.7), 24 (2.11),
+ 24 (2.10)
+draw r * (PROC) .................................. 9 (2.13), 9 (2.14), 24 (2.14),
+ 25 (2.15)
+drawto (PROC) .................................... 20 (1.9), 34 (2.5)
+(e) Arbeit beenden ............................... 42 (3.12)
+EDITOR ........................................... 33 (1.2)
+end plot (PROC) .................................. 20 (1.10), 20 (1.11), 34 (2.6)
+endturtle (PROC) ................................. 44 (1.6)
+eof * (PROC) ..................................... 13 (3.9)
+erase (PROC) ..................................... 27 (3.3), 27 (3.2)
+exists (PROC) .................................... 27 (3.4)
+extrema * (PROC) ................................. 9 (2.16), 9 (2.15), 13 (3.11),
+ 13 (3.10)
+(f) Funktionsterm eingeben ....................... 38 (3.1)
+fill (PROC) ...................................... 20 (1.12), 34 (2.7)
+first ............................................ 4 (2.9)
+first (PROC) ..................................... 27 (3.5)
+foreground (PROC) ................................ 20 (1.14), 20 (1.13), 35 (2.8)
+forward (PROC) ................................... 44 (1.3)
+forward to (PROC) ................................ 44 (1.5)
+generate plotmanager (PROC) ...................... 27 (3.6)
+get cursor (PROC) ................................ 20 (1.15), 35 (2.9)
+get * (PROC) ..................................... 14 (3.12)
+getturtle (PROC) ................................. 45 (1.12)
+getvalues (PROC) ................................. 5 (1.3), 14 (3.13)
+graphik cursor (PROC) ............................ 20 (1.16), 21 (1.17), 35 (2.10)
+halt ............................................. 4 (2.6)
+halt (PROC) ...................................... 27 (3.7)
+hidden lines * (PROC) ............................ 25 (2.16)
+(?) Hilfestellung ................................ 41 (3.8)
+home (PROC) ...................................... 21 (1.18), 35 (2.11)
+INCLUDE .......................................... 33 (1.3)
+init plot (PROC) ................................. 21 (1.19), 35 (2.12)
+insert picture * (PROC) .......................... 14 (3.14)
+install plotter (PROC) ........................... 17 (4.8)
+is first picture * (PROC) ........................ 14 (3.15)
+killer ........................................... 4 (2.8)
+length * (PROC) .................................. 9 (2.17)
+linetype (PROC) .................................. 25 (2.17)
+LINK ............................................. 33 (1.4)
+list (PROC) ...................................... 27 (3.8), 28 (3.9)
+listspool ........................................ 3 (2.1)
+(l) Zeichnungen auflisten ........................ 41 (3.7)
+(L) Zeichnungen loeschen ......................... 42 (3.13)
+move cm (PROC) ................................... 10 (2.20), 25 (2.21)
+move cm r * (PROC) ............................... 10 (2.21), 25 (2.22)
+move * (PROC) .................................... 9 (2.19), 9 (2.18), 25 (2.18),
+ 25 (2.19), 25 (2.20)
+move r * (PROC) .................................. 10 (2.23), 10 (2.22),
+ 25 (2.23), 25 (2.24)
+move to (PROC) ................................... 21 (1.20), 35 (2.13)
+name (PROC) ...................................... 17 (4.9)
+newvalues (PROC) ................................. 5 (1.4)
+nilpicture * (PROC) .............................. 10 (2.24)
+(n) Nachkommastellenzahl w„hlen .................. 42 (3.11)
+no plotter (PROC) ................................ 17 (4.10)
+oblique * (PROC) ................................. 5 (1.5), 14 (3.16)
+:= (OP) .......................................... 8 (2.2), 13 (3.2), 13 (3.3),
+ 17 (4.3), 17 (4.2)
+orthographic * (PROC) ............................ 5 (1.6)
+PACKET basisplot ................................. 1 (3.1)
+PACKET deviceinterface ........................... 1 (2.1)
+PACKET devices ................................... 1 (1.4)
+PACKET picfile ................................... 1 (1.3)
+PACKET picture ................................... 1 (1.2)
+PACKET plot ...................................... 1 (3.3)
+PACKET plotinterface ............................. 1 (3.2)
+PACKET transformation ............................ 1 (1.1)
+pendown (PROC) ................................... 44 (1.7)
+pen * (PROC) ..................................... 10 (2.25), 10 (2.26),
+ 26 (2.25), 45 (1.11)
+penup (PROC) ..................................... 44 (1.4)
+perspective * (PROC) ............................. 6 (1.7), 14 (3.17)
+picfiles (PROC) .................................. 28 (3.10)
+picture no * (PROC) .............................. 14 (3.18)
+picture * (PROC) ................................. 11 (2.27)
+pictures * (PROC) ................................ 14 (3.19)
+plot * (PROC) .................................... 29 (4.3), 29 (4.2), 29 (4.1)
+PLOTTER .......................................... 33 (1.5)
+plotterinfo (PROC) ............................... 18 (4.13)
+plotter (PROC) ................................... 18 (4.11), 18 (4.12)
+plotters (PROC) .................................. 18 (4.14)
+prepare (PROC) ................................... 21 (1.21), 36 (2.14)
+put picture * (PROC) ............................. 14 (3.21)
+put * (PROC) ..................................... 14 (3.20)
+(q) in die Kommandoebene zurck .................. 41 (3.9)
+read picture * (PROC) ............................ 14 (3.22)
+reset linetypes * (PROC) ......................... 26 (2.27)
+reset * (PROC) ................................... 26 (2.26)
+reset zeichensatz * (PROC) ....................... 26 (2.28)
+rotate * (PROC) .................................. 11 (2.28), 11 (2.29)
+(s) Anzahl der Sttzpunkte waehlen ............... 42 (3.10)
+save (PROC) ...................................... 28 (3.12), 28 (3.11)
+selected pen * (PROC) ............................ 15 (3.23)
+select pen * (PROC) .............................. 15 (3.24)
+select plotter ................................... 4 (2.7)
+select plotter (PROC) ............................ 18 (4.16), 18 (4.15), 18 (4.17)
+set color (PROC) ................................. 21 (1.22)
+setdrawingarea (PROC) ............................ 6 (1.8)
+set marker (PROC) ................................ 21 (1.23), 36 (2.15)
+setpalette (PROC) ................................ 21 (1.24), 36 (2.16)
+setpixel (PROC) .................................. 21 (1.25), 36 (2.17)
+setvalues (PROC) ................................. 6 (1.9), 15 (3.25)
+spool control .................................... 3 (2.3)
+start ............................................ 4 (2.5)
+start (PROC) ..................................... 28 (3.13)
+station (PROC) ................................... 18 (4.18)
+stdcolors (PROC) ................................. 22 (1.26), 22 (1.27)
+stop ............................................. 3 (2.4)
+stop (PROC) ...................................... 28 (3.14)
+stretch * (PROC) ................................. 11 (2.31), 11 (2.30)
+text * (PROC) .................................... 11 (2.32)
+to eof * (PROC) .................................. 15 (3.26)
+to first pic * (PROC) ............................ 16 (3.27)
+to pic * (PROC) .................................. 16 (3.28)
+transform (PROC) ................................. 6 (1.10)
+translate * (PROC) ............................... 12 (2.33), 12 (2.34)
+turn (PROC) ...................................... 45 (1.10)
+turnto (PROC) .................................... 44 (1.2)
+(t) Wertetafel erstellen lassen .................. 41 (3.6)
+TYPE PICFILE ..................................... 13 (3.1)
+TYPE PICTURE * ................................... 8 (2.1)
+TYPE PLOTTER ..................................... 17 (4.1)
+up * (PROC) ...................................... 16 (3.30), 16 (3.29)
+viewport * (PROC) ................................ 7 (1.14), 16 (3.34)
+view * (PROC) .................................... 6 (1.13), 6 (1.12), 6 (1.11),
+ 16 (3.32), 16 (3.31), 16 (3.33)
+wait for halt (PROC) ............................. 28 (3.15)
+where * (PROC) ................................... 12 (2.35), 12 (2.36),
+ 26 (2.30), 26 (2.29)
+window * (PROC) .................................. 7 (1.15), 7 (1.16), 7 (1.17),
+ 16 (3.35), 16 (3.36)
+write picture * (PROC) ........................... 16 (3.37)
+(w) Wertebereich ermitteln lassen ................ 40 (3.3)
+zeichensatz * (PROC) ............................. 26 (2.31)
+(z) Zeichnung anfertigen ......................... 40 (3.4)
+
diff --git a/app/mpg/1987/doc/PLOTBOOK.ELA b/app/mpg/1987/doc/PLOTBOOK.ELA new file mode 100644 index 0000000..12f881c --- /dev/null +++ b/app/mpg/1987/doc/PLOTBOOK.ELA @@ -0,0 +1,660 @@ +#type ("basker12")##limit (16.0)##block#
+
+#head#
+#type ("triumb18")#
+#center#EUMEL-Grafik-System
+#type ("basker12")#
+#end#
+ #on("italics")#gescheit, gescheiter,
+ gescheitert#off("italics")#
+
+#type ("basker14")#
+#on("bold")#Beschreibung der Graphik-Prozeduren#off("bold")#
+#type ("basker12")#
+
+ #on("italics")#Zweidimensionale PICTURE brauchen weniger Speicherplatz als dreidimen-
+ sionale. Daher werden in einigen Fehlermeldungen unterschiedliche GrӇen
+ angegeben.#off("italics")#
+
+#on("underline")#Picture-Prozeduren#off("underline")#
+PICTURE
+
+
+:=
+ OP := (PICTURE VAR l, PICTURE CONST r)
+ Zweck: Zuweisung
+
+CAT
+ OP CAT (PICTURE VAR l, PICTURE CONST r)
+ Zweck: Aneinanderfgen von zwei PICTURE.
+ Fehlerf„lle:
+ * left dimension <> right dimension
+ Es k”nnen nur PICTURE mit gleicher Dimension angefgt werden.
+ * Picture overflow
+ Die beiden PICTURE berschreiten die maximale GrӇe eines
+ PICTURE.
+
+nilpicture
+ PICTURE PROC nilpicture
+ Zweck: Die Prozedur liefert ein leeres PICTURE zur Initialisierung.
+
+draw
+ PROC draw (PICTURE VAR p, TEXT CONST text)
+ Zweck: Der angegebene Text wird gezeichnet. Der Anfang ist dabei die aktuelle
+ Stiftposition, die nicht ver„ndert wird.
+ Fehlerf„lle:
+ * Picture overflow
+ Der Text paát nicht mehr in das PICTURE.
+
+ PROC draw (PICTURE VAR p, TEXT CONST text, REAL CONST angle,
+ height, bright)
+ Zweck: Der angegebene Text wird unter dem Winkel #on("italics")#angle#off("italics")# gegenber der
+ Waagerechten mit der Zeichenh”he #on("italics")#hight#off("italics")# und der Breite #on("italics")#bright#off("italics")# gezeich-
+ net. Der Anfang ist dabei die aktuelle Stiftposition, die nicht ver„ndert
+ wird.
+ Fehlerf„lle:
+ * Picture overflow
+ Der Text paát nicht mehr in das PICTURE.
+
+ PROC draw (PICTURE VAR p, REAL CONST x, y, z)
+ Zweck: Zeichnen einer Linie von der aktuellen Position zur Position (x, y, z).
+ Fehlerf„lle:
+ * Picture overflow
+ Zu viele Befehle in einem PICTURE
+ * Picture is two dimensional
+
+ PROC draw (PICTURE VAR p, REAL CONST x, y)
+ Zweck: Zeichnen einer Linie von der aktuellen Position zur Position (x, y).
+ Fehlerf„lle:
+ * Picture overflow
+ Zu viele Befehle in einem PICTURE
+ * Picture is three dimensional
+
+draw r PROC draw r (PICTURE VAR p, REAL CONST x, y, z)
+ Zweck: Zeichnen einer Linie der L„nge (x, y, z) relativ zur aktuellen Position.
+ Fehlerf„lle:
+ * Picture overflow
+ Zu viele Befehle in einem PICTURE
+ * Picture is two dimensional
+
+ PROC draw r (PICTURE VAR p, REAL CONST x, y)
+ Zweck: Zeichnen einer Linie der L„nge (x, y) relativ zur aktuellen Position.
+ Fehlerf„lle:
+ * Picture overflow
+ Zu viele Befehle in einem PICTURE
+ * Picture is three dimensional
+
+draw cm
+ PROC draw cm (PICTURE VAR p, REAL CONST x, y)
+ Zweck: Zeichnen einer Linie von der aktuellen Position zur Position (x, y) cm.
+ Dabei werden die angegebenen Projektionsparameter nicht beachtet,
+ sondern die Angaben in #on("bold")#Zentimeter#off("bold")# berechnet.
+ Fehlerf„lle:
+ * Picture overflow
+ Zu viele Befehle in einem PICTURE
+
+draw cm r
+ PROC draw cm r (PICTURE VAR p, REAL CONST x, y)
+ Zweck: Zeichnen einer Linie der L„nge (x, y) cm relativ zur aktuellen Position.
+ Dabei werden die angegebenen Projektionsparameter nicht beachtet,
+ sondern die Angaben in #on("bold")#Zentimeter#off("bold")# berechnet.
+ Fehlerf„lle:
+ * Picture overflow
+ Zu viele Befehle in einem PICTURE
+
+move
+ PROC move (PICTURE VAR p, REAL CONST x, y, z)
+ Zweck: Die aktuelle Position wird auf (x, y, z) gesetzt.
+ Fehlerf„lle:
+ * Picture overflow
+ Zu viele Befehle in einem PICTURE
+ * Picture is two dimensional
+
+ PROC move (PICTURE VAR p, REAL CONST x, y)
+ Zweck: Die aktuelle Position wird auf (x, y) gesetzt.
+ Fehlerf„lle:
+ * Picture overflow
+ Zu viele Befehle in einem PICTURE
+ * Picture is three dimensional
+
+move r
+ PROC move r (PICTURE VAR p, REAL CONST x, y, z)
+ Zweck: Die aktuelle Position wird um (x, y, z) erh”ht.
+ Fehlerf„lle:
+ * Picture overflow
+ Zu viele Befehle in einem PICTURE
+ * Picture is two dimensional
+
+ PROC move r (PICTURE VAR p, REAL CONST x, y)
+ Zweck: Die aktuelle Position wird um (x, y) erh”ht.
+ Position.
+ Fehlerf„lle:
+ * Picture overflow
+ Zu viele Befehle in einem PICTURE
+ * Picture is three dimensional
+
+move cm
+ PROC move cm (PICTURE VAR p, REAL CONST x, y)
+ Zweck: Die aktuelle Position wird auf (x, y) cm gesetzt. Dabei werden die an-
+ gegebenen Projektionsparameter nicht beachtet, sondern die Angaben in #on("bold")#
+ Zentimeter#off("bold")# berechnet.
+ Fehlerf„lle:
+ * Picture overflow
+ Zu viele Befehle in einem PICTURE
+
+move cm r
+ PROC move cm r (PICTURE VAR p, REAL CONST x, y)
+ Zweck: Die aktuelle Position wird um (x, y) cm erh”ht. Dabei werden die an-
+ gegebenen Projektionsparameter nicht beachtet, sondern die Angaben in #on("bold")#
+ Zentimeter#off("bold")# berechnet.
+ Fehlerf„lle:
+ * Picture overflow
+ Zu viele Befehle in einem PICTURE
+
+bar
+ PROC bar (PICTURE VAR p, REAL CONST width, hight, INT CONST
+ pattern):
+ Zweck: Die Prozedur zeichnet an der aktuellen Position einen Balken mit dem
+ Muster #on("italics")#pattern#off("italics")#: 0 = Leerer Balken
+ 1 = Gepunkteter Balken
+ 2 = Gefllter Balken
+ 3 = Horizontale Linien
+ 4 = Vertikale Linien
+ 5 = Gekreuzte Linien
+ 6 = Diagonale Linien von Links nach Rechts
+ 7 = Diagonale Linien von Rechts nach Links
+ 8 = Gekreuzte diagonale Linien.
+ Die aktuelle Stiftposition wird dabei nicht ver„ndert.
+ Fehlerf„lle:
+ * Picture overflow
+ Zu viele Befehle in einem PICTURE
+ * Picture is three dimensional
+ * Unknown pattern
+ Das angegebene Muster liegt nicht im Bereich 0-8
+
+circle
+ PROC circle (PICTURE VAR p, REAL CONST from, to, INT CONST
+ pattern)
+ Zweck: Die Prozedur zeichnet an der aktuellen Position ein Kreissegment vom
+ Winkel #on("italics")#from#off("italics")# bis #on("italics")#to#off("italics")# (im Gradmaá) mit dem Muster #on("italics")#pattern#off("italics")# (s.o.). Die
+ aktuelle Stiftposition wird dabei nicht ver„ndert.
+ Fehlerf„lle:
+ * Picture overflow
+ Zu viele Befehle in einem PICTURE
+ * Picture is three dimensional
+ * Unknown pattern
+ Das angegebene Muster liegt nicht im Bereich 0-8
+
+dim
+ INT PROC dim (PICTURE CONST pic)
+ Zweck: Liefert die Dimension eines PICTURE.
+
+pen
+ INT PROC pen (PICTURE CONST p)
+ Zweck: Liefert den virtuellen Stift des PICTURE
+
+ PROC pen (PICTURE VAR p, INT CONST pen)
+ Zweck: Setzen des (virtuellen) Stiftes eines PICTURE. Bei pen=0 wird das
+ Picture nicht gezeichnet.
+ Fehlerf„lle:
+ * pen out of range
+ Der gewnschte Stift ist kleiner als 0 oder grӇer als 16.
+
+extrema
+ PROC extrema (PICTURE CONST p, REAL VAR x min, x max, y min, y
+ max)
+ Zweck: Die Prozedur liefert die grӇten und kleinsten Werte des PICTURE.
+ Fehlerf„lle:
+ * Picture is three dimensional
+
+ PROC extrema (PICTURE CONST p, REAL VAR x min, x max, y min, y
+ max, z min, z max)
+ Zweck: Die Prozedur liefert die grӇten und kleinsten Werte des PICTURE.
+ Fehlerf„lle:
+ * Picture is two dimensional
+
+where
+ PROC where (PICTURE CONST p, REAL VAR x, y, z)
+ Zweck: Die Prozedur liefert die aktuelle Stiftposition (Angaben mit #on("italics")#cm#off("italics")# werden
+ dabei nicht bercksichtigt).
+ Fehlerf„lle:
+ * Picture is two dimensional
+
+ PROC where (PICTURE CONST p, REAL VAR x, y, z)
+ Zweck: Die Prozedur liefert die aktuelle Stiftposition (Angaben mit #on("italics")#cm#off("italics")# werden
+ dabei nicht bercksichtigt).
+ Fehlerf„lle:
+ * Picture is three dimensional
+
+rotate:
+ PROC rotate (PICTURE VAR p, REAL CONST angle)
+ Zweck: Das PICTURE wird um den Punkt (0, 0) um den Winkel #on("italics")#angle#off("italics")# (im
+ Gradmaá) im mathematisch positiven Sinn gedreht.
+ Dabei werden nur die Werte von #on("italics")#draw, draw r, move #off("italics")# und #on("italics")#move r#off("italics")#
+ ver„ndert.
+
+ PROC rotate (PICTURE CONST p, REAL CONST phi, theta, lambda ) :
+ PICTURE 1-397
+ Zweck: Das PICTURE wird um den Winkel #on("italics")#lambda#off("italics")# um die Drehachse #on("italics")#(phi,
+ theta)#off("italics")# gedreht.
+ Dabei werden nur die Werte von #on("italics")#draw, draw r, move #off("italics")# und #on("italics")#move r#off("italics")#
+ ver„ndert.
+
+stretch
+ PROC stretch (PICTURE VAR pic, REAL CONST sx, sy)
+ Zweck: Das PICTURE wird in X-Richtung um den Faktor #on("italics")#sx#off("italics")#, in Y-Rich-
+ tung um den Faktor #on("italics")#sy#off("italics")# gestreckt (bzw. gestaucht). Dabei bewirkt der
+ Faktor
+ s > 1 eine Streckung
+ 0 < s < 1 eine Stauchung
+ s < 0 zus„tzlich eine Achsenspiegelung.
+ Dabei werden nur die Werte von #on("italics")#draw, draw r, move #off("italics")# und #on("italics")#move r#off("italics")#
+ ver„ndert.
+ Fehlerf„lle:
+ * Picture is three dimensional
+
+ PROC stretch (PICTURE VAR p, REAL CONST sx, sy, sz)
+ Zweck: s. o.
+ Fehlerf„lle:
+ * Picture is two dimensional
+
+translate
+ PROC translate (PICTURE VAR p, REAL CONST dx, dy)
+ Zweck: Das PICTURE wird um #on("italics")#dx#off("italics")# und #on("italics")#dy#off("italics")# verschoben.
+ Dabei werden nur die Werte von #on("italics")#draw, draw r, move #off("italics")# und #on("italics")#move r#off("italics")#
+ ver„ndert.
+ Fehlerf„lle:
+ * Picture is three dimensional
+
+ PROC translate (PICTURE VAR p, REAL CONST dx, dy, dz)
+ Zweck: s. o.
+ Fehlerf„lle:
+ * Picture is two dimensional
+
+plot PROC plot (PICTURE CONST p)
+ Zweck: Das Picfile wird gezeichnet.
+ Achtung: Es wird kein #on("italics")#begin plot#off("italics")# oder #on("italics")#end plot#off("italics")# durchgefhrt. Es wird
+ auch kein Stift gsetzt und die Projektionsparameter bleiben
+ unver„ndert.
+
+
+#on("underline")#Graphische PICFILE-Prozeduren#off("underline")#
+plot
+ PROC plot (TEXT CONST name)
+ Zweck: Der PICFILE mit dem Namen #on("italics")#name#off("italics")# wird entsprechend der angegebenen
+ Darstellungsart gezeichnet. Diese Parameter (#on("italics")#perspective, orthographic,
+ oblique, view, window etc.#off("italics")#) mssen vorher eingestellt werden.
+ Fehlerf„lle:
+ * PICFILE does not exist
+ Es existiert kein PICFILE mit dem Namen #on("italics")#name#off("underline")#
+
+ PROC plot (PICFILE VAR p)
+ Zweck: Der PICFILE #on("italics")#p#off("italics")# wird entsprechend der angegebenen Darstellungsart ge-
+ zeichnet. Diese Parameter mssen vorher eingestellt werden:
+
+ #on("bold")#zweidimensional:#off("bold")#
+ obligat: #on("italics")#window#off("italics")# (zweidimensional)
+ optional: #on("italics")#view#off("italics")# (zweidimensional)
+ #on("italics")#viewport#off("italics")#
+ #on("italics")#select pen#off("italics")#
+
+ #on("bold")#dreidimensional:#off("bold")#
+ obligat: #on("italics")#window#off("italics")# (dreidimensional)
+ optional: #on("italics")#view#off("italics")# (dreidimensional)
+ #on("italics")#orthographic | perspective | oblique#off("italics")#
+ #on("italics")#viewport#off("italics")#
+ #on("italics")#select pen#off("italics")#
+
+
+select pen
+ PROC select pen (PICFILE VAR p, INT CONST pen, colour, thickness, line
+ type,
+ BOOL VAR hidden lines) Zweck: Fr die
+ Darstellung des Bildes #on("italics")#p#off("italics")# soll dem #on("italics")#virtuellen#off("italics")# Stift #on("italics")#pen#off("italics")# ein realer Stift
+ zugeordnet werden, der m”glichst die Farbe #on("italics")#colour#off("italics")# und die Dicke #on("italics")#thick-
+ ness#off("italics")# hat und dabei Linien mit dem Typ #on("italics")#line type#off("italics")# zeichnet. Es wird die
+ beste Ann„herung fr das Ausgabeger„t genommen.
+ Wenn #on("italics")#hidden lines#off("italics")# auf TRUE gesetzt wird, werden bei dreidimensionalen
+ Zeichnungen die verdeckten Linien mitgezeichnet, ansonsten werden sie
+ unterdrckt. Um sicherzustellen, das der Algorithmus auch funktioniert,
+ mssen die Linien allerdings von vorn nach hinten gezeichnet werden. Es
+ ist also nicht m”glich, das Bild so zu drehen, das die hinteren Linien
+ zuerst gezeichnet werden.
+ Dabei gelten folgende Vereinbarungen:
+
+ #on("bold")#Farbe:#off("bold")# Negative Farben werden XOR gezeichnet (dunkel wird hell und
+ hell wird dunkel), Farbe 0 ist der L”schstift und positive Farben
+ berschreiben (ersetzen) den alten Punkt mit folgenden Werten:
+
+ 1 Standardfarbe des Endger„tes
+ 2 rot
+ 3 blau
+ 4 grn
+ 5 schwarz
+ 6 weiá
+ > 6 nicht normierte Sonderfarben
+
+
+ #on("bold")#Dicke:#off("bold")# 0 Standardstrichst„rke des Endger„tes, ansonsten Strichst„rke in
+ 1/10 mm.
+
+
+ #on("bold")#Linientyp:#off("bold")#
+ 0 keine sichtbare Linie
+ 1 durchg„ngige Linie
+ 2 gepunktete Linie
+ 3 kurz gestrichelte Linie
+ 4 lang gestrichelte Linie
+ 5 Strichpunktlinie
+ > 5 nicht normierte Linie
+
+ #on("bold")#Verdeckte Linien:#off("bold")#
+ TRUE Verdeckte Linien werden mitgezeichnet
+ FALSE Verdeckte Linien werden unterdrckt (nur bei drei-
+ dimensionalen PICTURE)
+
+ Die hier aufgefhrten M”glichkeiten mssen nicht an allen graphischen
+ Endger„ten vorhanden sein. Der ger„teabh„ngige Graphik-Treiber w„hlt
+ jeweils die bestm”gliche Ann„herung.
+
+ Fehlerf„lle:
+ * pen out of range
+ #on("italics")#pen#off("italics")# muss im Bereich 1-16 sein.
+
+background
+ PROC background (PICFILE VAR p, INT CONST colour)
+ Zweck: Der Hintergrund wird auf die Farbe #on("italics")#colour#off("italics")# (s.o.) gesetzt wenn m”glich.
+
+ INT PROC background (PICFILE CONST p):
+ Zweck: Liefert die eingestellte Hintergrundfarbe.
+
+view
+ PROC view (PICFILE VAR p, REAL CONST alpha)
+ Zweck: Setzt den Winkel der Y-Achse zur Senkrechten auf #on("italics")#alpha#off("italics")# Grad, falls
+ diese nicht senkrecht zur Betrachtungsebene steht.
+
+ PROC view (PICFILE VAR p, REAL CONST phi, theta)
+ Zweck: Dreidimensionale Bilder werden h„ufig nicht direkt von vorne dargestellt,
+ sondern fr die Betrachtung gedreht. Mit der Prozedur #on("italics")#view#off("italics")# kann die
+ Betrachtungsrichtung durch die Polarwinkel #on("italics")#phi#off("italics")# und #on("italics")#theta#off("italics")# (im Gradmass)
+ angegeben werden. Voreingestellt ist #on("italics")#phi#off("italics")# = 0 und #on("italics")#theta#off("bold")# = 0, d.h. senk-
+ recht von oben.
+
+ Im Gegensatz zu #on("italics")#rotate#off("italics")# hat #on("italics")#view#off("italics")# keine Wirkung auf das eigentliche Bild
+ (PICFILE), sondern nur auf die gew„hlte Darstellung. So addieren sich
+ zwar aufeinanderfolgende #on("italics")#Rotationen#off("italics")#, #on("italics")#view#off("italics")# aber geht immer von der
+ Nullstellung aus. Auch kann das Bild durch eine #on("italics")#Rotation#off("italics")# ganz oder
+ teilweise aus oder in das Darstellungsfenster (#on("italics")#window#off("italics")# gedreht werden. Bei
+ #on("italics")#view#off("italics")# ver„ndern sich die Koordinaten der Punkte nicht, d. h. das Fenster
+ wird mitgedreht.
+
+ PROC view (PICFILE VAR p, REAL CONST x, y, z)
+ Zweck: Wie oben, nur werden die Winkel nicht in Polarkoordinaten angegeben,
+ sondern es wird die Blickrichtung als Vektor in Karthesischen Koordina-
+ ten angegeben. (Die L„nge darf ungleich 1 sein).
+
+viewport
+ PROC viewport (PICFILE VAR p, REAL CONST hormin, hormax, vertmin,
+ vertmax) : 1-709
+ Zweck: Die Zeichenfl„che auf dem Endger„t, auf dem das Bild dargestellt werden
+ soll, wird spezifiziert. Dabei wird sowohl die GrӇe als auch die relative
+ Lage der Zeichenfl„che definiert. Der linke untere Eckpunkt der physi-
+ kalischen Zeichenfl„che des Ger„tes hat die Koordinaten (0, 0). Die
+ definierte Zeichenfl„che erstreckt sich
+
+ #on("italics")#hormin - hormax#off("italics")# in der Horizontalen,
+ #on("italics")#vertmin - vertmax#off("italics")# in der Vertikalen.
+
+ So liegt der linke untere Eckpunkt dann bei (#on("italics")#hormin, hormax#off("italics")#), der rechte
+ obere Eckpunkt bei (#on("italics")#hormax, vertmax#off("italics")#).
+
+ Damit sowohl ger„teunabh„ngige als auch maástabgetreue Zeichnungen
+ m”glich sind, k”nnen die Koordinaten in zwei Arten spezifiziert werden:
+ a) #on("bold")#Ger„tekoordinaten#off("bold")#
+ Die Koordinaten k”nnen Werte von 0.0 bis 2.0 annehmen. Dabei
+ hat die krzere Seite der physikalischen Zeichenfl„che definitionsge-
+ m„á die L„nge 1.0.
+ b) #on("bold")#Absolute Koordinaten#off("bold")#
+ Die Werte werden in #on("italics")#cm#off("italics")# angegeben. Dabei mssen die Maximal-
+ werte aber grӇer als 2.0 sein, da sonst Fall a) angenommen wird.
+
+ Voreingestellt ist
+
+ viewport (0.0, 1.0, 0.0, 1.0)
+
+ d.h. das gr”átm”gliche Quadrat, beginnend mit der linken unteren Ecke
+ der physikalischen Zeichenfl„che. In vielen F„llen wird diese Einstellung
+ ausreichen, so daá der Anwender kein eigenes #on("italics")#viewport#off("italics")# definieren muss.
+
+ Der Abbildungsmaástab wird durch das Zusammenspiel von #on("italics")#viewport#off("italics")# und
+ #on("italics")#window#off("italics")# festgelegt (s. dort). Dabei ist insbesondere darauf zu achten, daá
+ winkeltreue Darstellung nur bei gleichen X- und Y-Maástab m”glich
+ ist. Da man oft quadratische Fenster (#on("italics")#window#off("italics")#) verwendet, wurde als
+ Standardeinstellung auch ein quadratisches #on("italics")#viewport#off("italics")# gew„hlt.
+
+ Hinweis: Mit der Prozedur #on("italics")#check limit#off("italics")# aus dem PACKET #on("italics")#basis plot#off("italics")# kann die
+ šberprfung der Grenzen des eingestellten #on("italics")#viewport#off("italics")#-Bereiches ein-
+ bzw. ausgeschaltet werden. Bei eingeschateter šberprfung, werden
+ Linien, die den Bereich berschreiten, am Rand abgetrennt.
+
+
+window
+ PROC window (PICFILE VAR p, REAL CONST x min, x max, y min, y max)
+ Zweck: Fr die Darstellung eines zweidimensionalen Bildes wird das darzustel-
+ lende Fenster definiert. Alle Bildpunkte, deren X-Koordinaten im In-
+ tervall [#on("italics")#x min, x max#off("italics")#] und deren Y-Koordinaten im Bereich [#on("italics")#y min, y
+ max#off("italics")#] liegen, geh”ren zum definierten Fenster.Vektoren, die auáerhalb
+ dieses Fensters liegen, gehen ber die durch #on("italics")#viewport#off("italics")# Fl„che hinaus
+ (s.dort).
+
+ Der Darstellungsmaástab ergibt sich als
+
+ #ub# x max - x min #ue#
+ horizontale Seitenl„nge der Zeichenfl„che
+
+
+ #ub# y max - y min #ue#
+ vertikale Seitenl„nge der Zeichenfl„che
+
+ PROC window (PICFILE VAR p, REAL CONST x min, x max, y min, y max,
+ z min, z max)
+
+ Zweck: Fr die darstellung eines dreidimensionalen Bildes wird das darzustellende
+ Fenster definiert. Alle Bildpunkte, deren X-Koordinaten im Intervall [#on("italics")#x
+ min, x max#off("italics")#], deren Y-Koordinaten im Bereich [#on("italics")#y min, y max#off("italics")#] und
+ deren Z-Koordinaten im Bereich [#on("italics")#z min, z max#off("italics")#] liegen, geh”ren zum
+ definierten Fenster. Dieses dreidimensionale Fenster (#on("italics")#Quader#off("italics")#) wird ent-
+ sprechend der eingestellten Projektionsart (orthographisch, perspektivisch
+ oder schiefwinklig) und den Betrachtungswinkeln (s. #on("italics")#view#off("italics")#) auf die spezi-
+ fizierte Zeichenfl„che abgebildet.
+ Anders als im zweidimensionalen Fall ist das Problem der Maásta„be
+ nicht mehr nur durch das Zusammenspiel von #on("italics")#window#off("italics")# und #on("italics")#viewport#off("italics")# zu
+ beschreiben. Hier spielen auch die Projektionsart und Darstellungswinkel
+ herein.
+
+oblique:
+ PROC oblique (PICFILE VAR p, REAL CONST a, b)
+ Zweck: Bei dem (dreidimensionalen) Bild #on("italics")#p#off("italics")# wir #on("underline")#schiefwinklig#off("underline")# als gewnschte
+ Projektionsart eingestellt. Dabei ist (#on("italics")#a, b#off("italics")#) der Punkt auf der X-Y-
+ Ebene, auf den der Einheitsvektor der Z-Richtung abgebildet werden
+ soll.
+
+orthographic
+ PROC orthographic (PICFILE VAR p)
+ Zweck: Bei dem (dreidimensionalen) Bild #on("italics")#p#off("italics")# wir #on("underline")#orthographisch#off("underline")# als gewnschte
+ Projektionsart eingestellt. Bei der orthographischen Projektion wird ein
+ dreidimensionaler K”rper mit parallelen Strahlen senkrecht auf der Pro-
+ jektionsebene dabgebildet.
+
+perpective
+ PROC perspective (PICFILE VAR p, REAL CONST cx, cy, cz)
+ Zweck: Bei dem (dreidimensionalen) Bild #on("italics")#p#off("italics")# wir #on("underline")#perspectivisch#off("underline")# als gewnschte
+ Projektionsart eingestellt. Der Punkt (#on("italics")#cx, 1/cy, cz#off("underline")#) ist der Fluchtpunkt der
+ Projektion, d. h. alle Parallen zur Z-Achse schneiden sich in diesem
+ Punkt.
+
+extrema
+ PROC extrema (PICFILE VAR p, REAL VAR x min, x max, y min, y max)
+ Zweck: Die Prozedur liefert die grӇten und kleinsten Werte des PICFILE.
+
+ PROC extrema (PICFILE VAR p, REAL VAR x min,x max,y min,y max,z
+ min,z max) : 1-651
+ Zweck: Die Prozedur liefert die grӇten und kleinsten Werte des PICFILE.
+
+
+#on("underline")#Prozeduren zur Manipulation von PICFILE#off("underline")#
+:=
+ OP := (PICFILE VAR p, DATASPACE CONST d)
+ Zweck: Assoziert die PICFILE Variable #on("italics")#p#off("italics")# mit dem Datenraum #on("italics")#d#off("italics")# und initialisiert
+ die Variable, wenn n”tig.
+ Fehlerf„lle:
+ * dataspace is no PICFILE
+ Der anzukoppelnde Datenraum hat einen unzul„ssigen Typ
+
+picture file
+ DATASPACE PROC picture file (TEXT CONST name)
+ Zweck: Assoziaten eines benannten Datenraumes mit einem PICFILE (s.o.).
+
+put
+ PROC put (FILE VAR f, PICFILE VAR p)
+ Zweck: Schreibt den Inhalt eines PICFILE in ein FILE. Die Informationen
+ werden im internen Format abgelegt.
+
+get
+ PROC get (PICFILE VAR p, FILE VAR f)
+ Zweck: Liest den Inhalt eines PICFILE aus einem FILE. Die Informationen
+ mssen mit #on("italics")#put#off("italics")# geschrieben worden sein.
+ Fehlerfall:
+ * Picfile overflow
+ Es k”nnen nur maximal 1024 Picture (S„tze) in einem PICFILE abgelegt
+ werden.
+
+to first pic
+ PROC to first pic (PICFILE VAR p)
+ Zweck: Positioniert auf das erste PICTURE.
+
+to eof
+ PROC to last pic (PICFILE VAR p)
+ Zweck: Positioniert hinter das letzte PICTURE.
+
+to pic
+ PROC to pic (PICFILE VAR p, INT CONST pos)
+ Zweck: Positioniert auf das PICTURE Nummer #on("italics")#pos#off("italics")#.
+ Fehlerf„lle:
+ * Position underflow
+ Es wurde eine Position kleiner Null angegeben. * Position after
+ eof Es wurde versucht, hinter das Ende eines PICFILE zu positionieren
+
+up
+ PROC up (PICFILE VAR p)
+ Zweck: Positioniert genau ein PICTURE zurck.
+ Fehlerfall:
+ * Position underflow
+ Es wurde versucht, vor das erste PICTURE zu positionieren
+
+ PROC up (PICFILE VAR p, INT CONST n)
+ Zweck: Positioniert genau #on("italics")#n#off("italics")# Picture zurck.
+ Fehlerfall:
+ * Position underflow
+ Es wurde versucht, vor das erste PICTURE zu positionieren
+
+down
+ PROC down (PICFILE VAR p)
+ Zweck: Positioniert genau ein PICTURE vorw„rts.
+ Fehlerfall:
+ * Position after eof
+ Es wurde versucht, hinter das Ende eines PICFILE zu positionieren
+
+ PROC down (PICFILE VAR p, INT CONST n)
+ Zweck: Positioniert genau #on("italics")#n#off("italics")# Picture vorw„rts.
+ Fehlerfall:
+ * Position after eof
+ Es wurde versucht, hinter das Ende eines PICFILE zu positionieren
+
+is first picture
+ BOOL PROC is first picture (PICFILE CONST p)
+ Zweck: Liefert genau dann #on("italics")#TRUE#off("italics")#, wenn das erste PICTURE erreicht ist.
+
+eof
+ BOOL PROC eof (PICFILE CONST p)
+ Zweck: Liefert genau dann #on("italics")#TRUE#off("italics")#, wenn das Ende eines PICFILE erreicht ist.
+
+picture no
+ INT PROC picture no (PICFILE CONST p)
+ Zweck: Liefert die Nummer des aktuellen PICTURE.
+
+pictures
+ INT PROC pictures (PICFILE CONST p)
+ Zweck: Liefert die Anzahl PICTURE eines PICFILE.
+
+delete picture
+ PROC delete picture (PICFILE VAR p)
+ Zweck: L”scht das aktuelle PICTURE
+
+insert picture
+ PROC insert picture (PICFILE VAR p)
+ Zweck: Fgt ein PICTURE #on("underline")#vor#off("underline")# der aktuellen Position ein.
+
+read picture
+ PROC read picture (PICFILE CONST p, PICTURE VAR pic)
+ Zweck: Liest das aktuelle PICTURE.
+
+write picture
+ PROC write picture (PICFILE VAR p, PICTURE CONST pic)
+ Zweck: Schreibt das PICTURE #on("italics")#pic#off("italics")# auf der aktuellen Position.
+
+put picture
+ PROC write picture (PICFILE VAR p, PICTURE CONST pic)
+ Zweck: Schreibt das PICTURE #on("italics")#pic#off("italics")# hinter das letzte PICTURE des PICFILE.
+ Die aktuelle Position wird nicht ver„ndert.
+
+#page#
+ #on("italics")#Wo wir sind, da klappt nichts,
+ aber wir k”nnen nicht berall sein !#off("italics")#
+
+#type ("basker14")#
+#on("bold")#Kurzbeschreibung des Graphik-Editors#off("bold")#
+#type ("basker12")#
+
+In der Kommondozeile werden folgende Informationen angezeigt:
+
+#on("revers")#LEN nnnnn <...Name...> DIM n PEN nn Picture nnnn
+#off("revers")#
+
+
+Folgende Kommandos stehen zur Verfgung:
+
+ PICTURE PROC pic neu
+ PICFILE PROC picfile neu
+ PROC neu zeichnen
+
+ OP UP n (n PICTURE up)
+ OP DOWN n (n PICTURE down)
+ OP T n (to PICTURE n)
+
+ PROC oblique (REAL CONST a, b)
+ PROC orthographic
+ PROC perspective (REAL CONST cx, cy, cz)
+ PROC window (BOOL CONST dev)
+ PROC window (REAL CONST x min, x max, y min, y max)
+ PROC window (REAL CONST x min, x max, y min, y max, z min, z max)
+ PROC viewport (REAL CONST h min, h max, v min, v max)
+ PROC view (REAL CONST alpha)
+ PROC view (REAL CONST phi, theta)
+ PROC view (REAL CONST x, y, z)
+
+ PROC pen (INT CONST n)
+ PROC select pen (INT CONST pen, colour, thickness, line type, BOOL CONST
+ hidden)
+ PROC background (INT CONST colour)
+
+ PROC extrema pic
+ PROC extrema picfile
+ PROC selected pen
+
+ PROC rotate (REAL CONST angle)
+ PROC rotate (REAL CONST phi, theta, lambda )
+ PROC stretch (REAL CONST sx, sy)
+ PROC stretch (REAL CONST sx, sy, sz)
+ PROC translate (REAL CONST dx, dy)
+ PROC translate (REAL CONST dx, dy, dz)
|