===== Graphik ===== Im folgenden finden sich ein paar einfache Anwendungen für den Einsatz der Graphikkommandos, die Beispielen aus der Prescribe-Dokumentation nachempfunden sind. Sie sollen die vielen Möglichkeiten von Prescribe beim Erstellen einfacher Zeichnungen demonstrieren. \\ \\ === Liniendiagramm === Bereits mit wenigen Kommandos lassen sich in Prescribe Diagramme erstellen. Mit dem Kommando //DAP// lassen sich Linien zu absoluten Positionen zeichnen. Die Dicke der Linien bestimmt das Kommando //SPD//. Die optische Gestaltung des Prescribe-Datenstroms mit Leerstellen und Zeilenvorschüben kann so gewählt werden, dass es für Menschen leicht nachvollzogen werden kann. Mit dem Kommando //CMNT// lassen sich sogar Kommentare einbauen. \\ \\ **Prescribe:** !R! RES; UNIT C; SLM 6; STM 10; SPD 0.05; FONT 9; CSET 0N; SCS 0.23; CMNT Temperaturskala ist in 10 Grad Schritten: 3.5 entsprechen 35°; CMNT Temperaturwerte sind negativ, weil in Prescribe die Y-Achse von oben nach unten verläuft, im Diagramm aber entgegengesetzt; MAP 0.7, -1.8; RTTX 90, 'Temperatur in °C'; MAP 1, 0.2; RTXT '0° '; MAP 1, -6.8; RTXT '70° '; MAP 1, 0; BOX 6, -7; MAP 1, 0.5; TEXT "So Mo Di Mi Do Fr Sa"; MAP 1, -2.5; DAP 2, -3.5; DAP 3, -0.9; DAP 4, -3.0; DAP 5, -5.8; DAP 6, -2.8; DAP 7, -3.3; PAGE; EXIT; \\ **Ausdruck:** {{convert4print:Prescribe:graphik1.png}} \\ === Füllmuster === In Prescribe lassen sich Füllmuster in Form einer 8 x 8 Bitmatrix definieren, die als eine Folge von acht Byte, ausgedrückt als Dezimalzahl, übertragen werden. Diese Füllmuster können mit den Kommandos //BLK// und //ARC// verwendet werden. Im Beispiel werden die Füllmuster über ein Makro erzeugt, dass die acht Werte als Parameter übernimmt. \\ \\ **Prescribe:** !R! RES; UNIT C; MCRO PATTERN %, Ausgabe eines mit Muster gefüllten Rechtecks; FPAT %1, %2, %3, %4, %5, %6, %7, %8; BOX 5, 1.25; BLK 5, 1.25; MRP 0, 1.55; TEXT 'FPAT %1, %2, %3, %4, %5, %6, %7, %8;', L; ENDM; MAP 5, 5; FTMD 15; FONT 13; SLS .2; CALL PATTERN, 3, 3, 0, 0, 0, 0, 0, 0; CALL PATTERN, 255, 0, 0, 0, 0, 0, 0, 0; CALL PATTERN, 1, 1, 1, 1, 1, 1, 1, 255; CALL PATTERN, 0, 0, 24, 60, 60, 24, 0, 0; MRP 5.5, -7; CALL PATTERN, 1, 2, 4, 8, 16, 32, 64, 128; CALL PATTERN, 8, 8, 8, 8, 8, 8, 8, 8; CALL PATTERN, 20, 0, 20, 0, 62, 0, 62, 0; CALL PATTERN, 8, 20, 34, 65, 130, 68, 40, 16; PAGE; EXIT; \\ **Ausdruck:** {{convert4print:Prescribe:graphik2.png}} \\ === Kreisdiagramme === In Prescribe existiert ein Kommando //PIE// zum Zeichnen von Kreisdiagrammen mit vorgegebenem Radius. Dabei wird einfach eine Werteliste übergeben, aus der die Teilung des Diagramms automatisch errechnet wird. Allerdings zeichnet das Kommando //PIE// ausschliesslich den Umriss des Diagramms. Will man die einzelnen Diagrammsegmente mit verschiedenen Mustern füllen, muss man für das Kommando //ARC// die Winkel der entsprechenden Kreissegmente selbst berechnen. \\ \\ **Prescribe:** !R! RES; UNIT C; MAP 5, 7; PIE 2, 0, 10, 20, 30; ARC 0, 2, 0, 60; FPAT 1, 0, 4, 0, 16, 0, 64, 0; ARC 0, 2, 60, 180; FPAT 1, 0, 0, 0, 16, 0, 0, 0; ARC 0, 2, 180, 360; PAGE; EXIT; \\ **Ausdruck:** {{convert4print:Prescribe:graphik3.png}} \\ === Linien zeichnen === Mit diversen Zeichenkommandos für Linien (//DAP//, //DZP//, //DRP//, //DRPA//) lassen sich praktisch beliebige Formen erstellen. Die Dicke einer Linie wird mit dem Kommando //SPD// eingestellt. Im Beispiel wird der Umriss eines Sterns in einem Makro (//MCRO// bis //ENDM//) gezeichnet. Liniendicke und Linienlänge werden als Parameter übergeben. Da die Endposition nach dem Zeichnen des Sterns rechts neben dem Stern liegt, kann mit einem wiederholten Makroaufruf (hier zehn mal) sehr effektiv ein Ziermuster gezeichnet werden. \\ \\ **Prescribe:** !R! RES; DAM; UNIT C; MCRO STAR %, Stiftdurchmesser, Linienlänge; SPD %1; DRPA %2, 18; DRPA %2, 306; DRPA %2, 90; DRPA %2, 18; DRPA %2, 162; DRPA %2, 90; DRPA %2, 234; DRPA %2, 162; DRPA %2, 306; DRPA %2, 234; MRP %2, 0; MRP %2, 0; MRP %2, 0; ENDM; MAP 5, 3; CALL 10 STAR, 0.03, 0.3366; RES; EXIT; \\ **Ausdruck:** {{convert4print:Prescribe:graphik4.png}} \\ === Abgerundete Ecken === Mit Hilfe von Prescribe-Kommando aus dem Bereich der Vektorgraphik lassen sich leicht Rechtecke mit abgerundeten Ecken erzeugen. Die Kombination der Kommandos //PRBX// und //STRK// ergibt einen Rahmen, wohingegen //PRBX// mit //FILL// eine rahmenlose gefüllte Fläche erzeugt. \\ \\ **Prescribe:** !R! RES; UNIT C; SPD 0.125; NEWP; PMZP 1, 1; PRBX 9.5, 1.7, 0.5; STRK; MZP 1.5, 2.15; SFNT "Univers-Bd", 26; TEXT "VORSICHT: HEISS!"; PAT 9; NEWP; PMZP 1, 4; PRBX 4.5, 2.4, 0.3; FILL; SFNT "Helvetica-Nr", 12; MZP 1.4, 4.6; TEXT "SPE Systemhaus GmbH", L; TEXT "Waldstrasse 7", L; TEXT "D-63150 Heusenstamm", L; MRP 0, 0.2; TEXT "www.spe-systemhaus.de"; PAGE; EXIT; \\ **Ausdruck:** {{convert4print:Prescribe:graphik5.png}} \\ Auch für dickere Linien lassen sich in Prescribe mit dem Kommando //SCAP// abgerundete Ecken erzeugen. Standard sind Linienenden, bei denen die Linie an jedem Ende um die Hälfte der Linienbreite verlängert werden, um beim Zeichnen von rechtwinkligen Anschlüssen Fehlstellen zu vermeiden. \\ \\ **Prescribe:** !R! CMNT Pfeil nach rechts mit abgerundeten Ecken; UNIT C; SPD .5; SCAP 3; NEWP; PMZP 8, 6; SCP; SCP; PDRP -1, -1; RPP; PDRP -1, 1; RPP; PDRP -5, 0; STRK; PAGE; EXIT; \\ **Ausdruck:** {{convert4print:Prescribe:graphik6.png}}