★ APPLICATIONS ★ CREATION GRAPHIQUE ★ MULTISCREEN (CPC AMSTRAD INTERNATIONAL) ★ |
MultiScreen | Teil 3: PEN-Umwandlung ohne Probleme (CPC Amstrad International '89/07) | Teil 4: Strukturveränderungen (CPC Amstrad International '89/08) |
3. Bildschirmmanipulationen Das MULTISCREEN-Programm 3.1. Allgemeines Unsere selbstprogrammierten Quadrate- und Pinselgrafiken sind zwar vielfach recht reizvoll, aber vollgültige Grafiken im alten Sinne des Wortes, also kleine, bis ins letzte ausgefeilte Darstellungen, die auch künstlerischen Wert beanspruchen können, sind die meisten von ihnen doch noch nicht. Das kann sich ändern, wenn wir nun daran gehen, sie mit dem MULTI-SCREEN-Programm zu bearbeiten. Wir tun das nicht, indem wir nun in dem Bild etwa irgendwelche Freihand-gezeichneten Zufügungen machen, sondern durch Bildschirm-Manipula-tionen; das heißt, wir werden daran gehen, den ganzen Bildschirm (oder Teile davon) durch rechnerspezifische Mittel gezielt zu verändern. MULTISCREEN baut auf dem in Heft 1/89, S. 58 vorgestellten KOMBI-SCREEN-Programm auf, ändert es für unsere Zwecke ab und führt es weiter. Wenn Sie es selber abtippen und nicht zur Databox greifen wollen, dann ärgern Sie sich bitte nicht über die so unübersichtlich langen Zeilen! Sie haben ihren guten Grund: Das Programm muß drei Bildschirme gleichzeitig verwalten, und es soll später noch durch zusätzliche, interessante Optionen erweitert werden. Da kommt es auf jedes einzelne Byte Speicherersparnis an — und mit langen Zeilen kann man allerhand sparen. Eine Zeile ist jeweils in einem Zuge abzutippen, also ohne dazwischen auf ENTER zu drücken! 3.2 Grundsätzliches zur Bedienung — Das Kombinieren Machen Sie sich zunächst mit den Optionen 1 bis 5 des Programms vertraut; in Heft 1/89 werden dafür viele Beispiele mit Bildern gegeben (die dort abgedruckten Programme " Pagode 1" und " Fläche 1" sind übrigens auch typische Pinselgrafiken). Wer dieses Heft nicht zur Hand hat, für den sind vor allem die folgenden Punkte wichtig:
3.3 Das Konvertieren Für diese Option wird nur ein Bild als Ausgangspunkt benützt. Ein eventuell schon im Speicher vorhandenes, früheres wird durch das Konvertieren nicht gelöscht und steht danach noch zum Kombinieren zur Verfügung. Probieren Sie auch hier bei all Ihren Bildern einfach durch, was sich alles ergibt. Auf einiges Grundsätzliches ist hinzuweisen: Das Konvertieren nach AND wandelt eine Grafik in eine "abgespeckte" Version um. Überprüfen Sie das an den "Globen"! Und wenn Sie das Ergebnis gleich noch nach XOR und anschließend noch einmal nach AND konvertieren, haben Sie einen schönen Sternenhimmel als Hintergrund für andere Bilder. Das Konvertieren nach XOR kann bei Grafiken, die viele schräge Linien und Flächen enthalten, zu besonders interessanten Ergebnissen führen. Nehmen Sie dafür das oben als Beispiel für Pinselgrafik mit Schrägsteuerung gezeigte "Kreuz"! Und erschrecken Sie nicht, wenn jetzt nach einem weiteren Konvertieren nach AND nur ein paar apart strukturierte Linien übrigbleiben. Konvertierungen nach OR machen eine Grafik dicker und fülliger und schließen Löcher im Umriß. Auch längere Konvertierungsfolgen lohnen das Ausprobieren. Nehmen Sie das "Kreuz" und konvertieren Sie: XOR — OR - OR - OR — XOR! Das läßt sich unendlich weiter experimentieren . 3.4. Das Ausfüllen Auf die Möglichkeiten, die im FILL-Befehl liegen, wurde bereits in Heft 1/89 hingewiesen; um sie bequem nutzen zu können, haben wir sie in MUL-TISCREEN eingebaut und um eine neue, grafisch sehr ergiebige Möglichkeit erweitert: den gestoppten FILL-Befehl. Freilich, ein Wermutstropfen für CPC-464-Besitzer: Sie können die Option (10) in der hier dargestellten Version nicht nutzen. Aber es gibt einen vorzüglichen Emulator, der auch ihnen den fehlenden FILL-Befehl verschafft. Der läßt sich aus Speicherplatzgründen zwar nicht mit MULTI-SCREEN zugleich verwenden, aber mit dem kleinen Nachteil des Pro-grammwechselns und Nachladens können auch auf dem CPC 464 die Möglichkeiten des Ausfüllens genützt werden. Laden Sie nun das Bild "Durchbrochener Raum" (Abb.l), und wählen Sie Option (10). Sie werden nach drei Parametern gefragt: Sperrfarbe ist die Farbe, mit der der auszufüllende Bereich umrandet sein muß, mit der Fill-Farbe wird ausgefüllt, und den Buffer "kriegen wir später". Geben Sie zunächst einmal einfach 1,1,1 ein. Ganz links unten (anfangs kaum sichtbar) erscheint ein Pfeil; steuern Sie ihn mit den Cursor-Tasten. Sein linker oberer Punkt markiert die Stelle, von der der Ausfüllvorgang ausgeht. Drücken Sie nun auf < f > , um die entsprechende Fläche zu füllen, und tun Sie das mit einer Reihe der an der linken und rechten Raumwand aufsteigenden Bahnen. Übernehmen Sie dann das Ergebnis durch zweimaligen Leertastendruck, und kombinieren Sie es mit dem vorhergehenden Bild über XOR— schon haben Sie diese apart strukturierten Bahnen isoliert. Nun das Besondere: Sie können diesen Ausfüllvorgang auch unterbrechen! Sie müssen dazu nur dem Computer den Bufferspeicher, den er für das Ausfüllen braucht und der oft über 1000 Byte groß ist, drastisch beschneiden, und schon kann der Computer das Ausfüllen nicht bis zum Ende durchführen und bricht vorzeitig ab. (Nähere Erläuterungen zu diesen interessanten und komplizierten Vorgängen folgen ein andermal.) Drücken wir nur die Wollen Sie die Farben und den Buffer wechseln, so drücken Sie Welche Buffergröße sinnvoll ist, läßt sich nicht pauschal beantworten, das ist von Bild zu Bild ganz verschieden. Sehr reich strukturierte Bilder brauchen mehr Buffer als solche, bei denen sich dem FILL-Befehl nur wenige Hindernisse in den Weg stellen. Ist der untere Bildrand frei, so genügt ein Buffer mit nur einem Byte, um das Ausfüllen einmal quer über das ganze Bild laufenzulassen. Eine Vergrößerung des Buffers läßt übrigens den Ausfüllvorgang nicht nur ein Stück weiter ablaufen, sondern verändert auch die aus- gefüllte Fläche; suchen Sie durch Probieren den Wert herauszufinden, der das interessanteste Bild ergibt. Als Beispiel dienen uns wieder unsere "Globen": Konvertieren Sie sie nach AND, geben Sie dann beim Ausfüllen einen Buffer von 50 ein, und steuern Sie den Cursor-Pfeil in das große Loch links unten am Bildrand, bevor Sie Es gibt noch weitere Möglichkeiten, den FILL-Befehl zu unterbrechen und seine Besonderheiten in vielfältiger Weise für grafische Gestaltungen heranzuziehen; das näher darzustellen, muß einem späteren Artikel vorbehalten bleiben. 3.5. Abschluß Zu den Spiegeloptionen ist, wenn Sie im MODE 2 arbeiten, nichts weiter zu erläutern; Sie können sie zur weiteren Umgestaltung Ihrer Bilder heranziehen. Viel Spaß dabei wünscht Ihnen CPCAI Im Zauberreich der Grafik Wie in der Ausgabe 3/89 angekündigt, wollen wir nun unseren Streifzug durch die fantastischen Grafikmöglichkeiten des CPC fortsetzen. Wichtig ist dabei wieder das MULTISCREEN-Programm (Heft 3/89, S.12), das uns zum Bearbeiten der Grafiken dient. Diejenigen, die das Programm nicht haben, Sie bekommen es in dieser Ausgabe nachgeliefert. Das Programm auf dem Titelbild der PC Amstrad Ausgabe 3/89 und im Aufmacherfoto des dazugehörigen Artikels (Seite 12) stammt nicht vom Autor dieses Beitrags, sondern von einem unserer Redakteure. Es ist übrigens kein bloßer Witz, wie manche Leser vielleicht gedacht haben, sondern ergibt, mit einigen ganz kleinen Änderungen, zwar kein Brötchen, aber ein sehr interessantes Interferenzenbild: Speichern Sie die apart gemusterte Pyramide, die dieses “Brötchen“-Programm ergibt, und bearbeiten Sie sie mit MULTISCREEN! Sie werden staunen: Jedes Konvertieren dieses Bildes ergibt neue Interferenzmuster (z.B. Bild I). Konvertieren Sie auch mehrfach hintereinander; besonders hübsch die Abfolge OR/XOR oder dreimal AND, einmal XOR. Oder Sie spiegeln das Bild senkrecht, kombinieren dieses Spiegelbild mit dem Ausgangsbild über XOR und konvertieren dieses neue Ergebnis nach AND (Bild 2). Unendlich viele andere Möglichkeiten des Kon-vertierens und Kombinierens gibt es; Sie haben in diesem “Brötchen"-Pro-gramm in Verbindung mit MULTISCREEN eine unerschöpfliche Studie über das Entstehen und Verschwinden von Interferenzen. Nun aber zum Thema unseres heutigen Beitrags: die Möglichkeiten des Ausfüllens. Der FILL-Befehl: Grundlagen CPC-464-Besitzer brauchen bei diesem neuen Thema das Heft nicht enttäuscht beiseite zu legen! Auch sie können alle Möglichkeiten dieses Befehls in ihren Programmen einsetzen, wenn sie den “Emulator“ von M. Uphoff (in jedem Sonderheft) verwenden. Dieses kleine, aber sehr leistungs starke Programm ist ohnehin für CPC-464-Besitzer eine fast unerläßliche Arbeitshilfe und ermöglicht ihnen die Verwendung all der Befehle, die sonst nur die “größeren Brüder“ besitzen. Auch das COPYSHOP-Programm stellt einen auf allen CPCs lauf-fähigen FILL-Befehl zur Verfügung. Und schließlich werden Sie auch noch einen ebenfalls auf allen CPCs verwendbaren “Exotic-FILL“ kennenlernen. Genug Material also auch für den CPC 464! Die Syntax des FILL-Befehls scheint einfach: FILL < färbe >, wobei für < färbe > eine dem jeweiligen MODE entsprechende PEN-Nr. eingesetzt werden muß, also 0 oder 1 im MODE 2, 0 bis 3 im MODE 1, 0 bis 15 im MODE 0. Aber oft rührt sich nach diesem Befehl noch gar nichts! Es muß nämlich noch eine Bedingung erfüllt sein: Der (unsichtbare) Grafik-Cursor, von dem der Ausfüll Vorgang ausgeht, darf nicht auf einem in der sogenannten Sperrfarbe gesetzten Punkt liegen. Als Sperrfarbe gilt dabei ebenso der PEN, mit dem ausgefüllt wird, wie der PEN, mit dem der auszufüllende Bereich umrandet ist. Will man also von einer Grafik im MODE 2 etwas weglöschen, so genügt nicht die Angabe FILL 0; es muß vorher auch noch auf den GRAPHICS PEN 0 umgeschaltet werden, da der FILL-Befehl sonst, weil er auf einer Sperrfarbe beginnen müßte, gar nicht erst zum Wirken kommt. Daß der auszufüllende Bereich von einer vollkommen geschlossenen Linie in der Sperrfarbe umgeben sein muß, ist Ihnen sicher bekannt. Läuft die Farbe aus, so hilft MULTISCREEN beim Schließen der Lücken: < s >- und < w >-Taste setzen beim kurzen Antippen an der Position des Cursorpfeils einen Punkt, bei längerem Niederdrücken zeichnen sie eine senkrechte beziehungsweise waagerechte Linie. Probieren wir das Füllen an einem lustigen Beispiel aus. Wir nehmen dafür eine Quadrate-Grafik, bei der von den vier Seiten des Quadrats nur eine einzige übriggeblieben ist: Wollen wir in diesem Bild die vier großen Flächen ausfüllen, um es zum Gesicht einer “Oma im Spitzenhäubchen“ umzugestalten, so geht das mit den großen Außenflächen einfach. Wir fügen die Zeile ein: Sollen aber auch die beiden Innenflächen und dazu noch die störenden kleinen Rauten am oberen Bildrand ausgefüllt werden, wird es schwierig; wie findet man die richtigen Koordinaten? Hier hilft MULTISCREEN! Fügen Sie die folgende Zeile ein: Laden Sie nun das Ausgangsbild, wählen Sie Option 10 (Ausfüllen), und steuern Sie den Pfeil mit den Cursortasten zu den Feldern, die Sie ausfüllen möchten. Jedesmal, wenn Sie jetzt die x-Taste drücken, werden die X- und Y-Koordinaten des betreffenden Punktes ausgegeben. Notieren Sie diese Koordinaten, und fügen Sie sie dann in das ursprüngliche Programm in der folgenden Form ein: Bei jedem Durchlauf der FOR... NEXT-Schleife wird nun aus der DATA-Zeile ein Koordinatenpaar eingelesen, der Grafik-Cursor dorthin bewegt und die entsprechende Stelle ausgefüllt. Dieses Ausfüllen mehrerer Stellen können Sie natürlich, wenn es Ihnen nur um das fertige Bild geht, auch mit MULTISCREEN erledigen (Option 10 und f-Taste). Aber wenn Sie die Grafik vielleicht als Titelbild eines eigenen Programms verwenden möchten, ist es sehr reizvoll, das Entstehen auf dem Bildschirm mitverfolgen zu können. Das Tüpfelchen auf dem i ist bei der “Oma“ (Bild 3) dann noch das Zufügen der Augen mit der Zeile 33: 2.Der FILL-Wechsel als “Bildfresser“ Damit sind die Möglichkeiten des FILL-Befehls noch lange nicht erschöpft! Wichtig ist vor allem die interessante Tatsache, daß ein wiederholter Wechsel von FILL 1 -FILL 0 eine Bildstruktur allmählich aufzehren und dabei sehr interessante Zwischenstufen hinterlassen kann. Das soll an einer reizvollen Quadrate-Grafik gezeigt werden: Es lohnt sich übrigens, die ständig wechselnden aparten Sternformen dieser Grafik im einzelnen zu verfolgen. Fügen Sie dazu ein: Nun aber der FILL-Wechsel! Er wird zugefügt durch die Zeile: Beachten Sie dabei, daß vor dem Ausfallen mit PEN 0 auch auf GRAPHICS PEN 0 umgeschaltet werden muß. Bei jedem Tastendruck läuft nun ein weiterer Ausfüllvorgang ab, der eine neue Bildstruktur ergibt, bis schließlich das Ganze aufgezehrt ist. Probieren Sie das auch mit der Angabe ORIGIN 320,190 in Zeile 25! Dabei ergeben sich w'ieder ganz andere Figuren, und wenn Sie die beim vierten Ausfüllen mit PEN 1 entstandene über AND mit dem ursprünglichen Stern kombinieren, erhalten Sie ein reich strukturiertes Gebilde, das an ein geschmiedetes Grabkreuz erinnert (Bild 4). Erproben wir nun die Möglichkeiten des wechselnden Ausfüllens an einer neuen Pinselgrafik: Für die elliptisch langgezogene Gestalt dieses Bildes ist die Tatsache verantwortlich, daß in Zeile 60 der für y zunächst errechnete Wert noch mit 1.7 multipliziert wird. Je größer dieser Faktor wird, desto mehr zieht sich das Ei in die Breite; wird er kleiner als 1 (probieren Sie z.B. 0.5!), so stellt es sich auf die Spitze und bekommt einen sehr plastisch wirkenden Mittelteil. Nun geht es ans wechselnde Ausfüllen. Machen Sie das mit einer zugefügten Zeile: oder über MULTISCREEN von der Mitte aus (Option 1 und abwechselnd 1,1.1 — Füllen - Tabulatortaste — 0,0.1 - Füllen, usw). Beginnen Sie dabei jeweils in der Mitte des großen Loches. Schon beim ersten Ausfüllen mit PEN 0 bemerken Sie, w'ie da zunächst hochinteressante Häuserstrukturen mit Fenstern stehenbleiben, die aber dann vom weiterlaufenden Ausfüllen leider weggelöscht werden. 3. Das Unterbrechen des FILL-Befehls Wenn man dieses Ausfüllen unterbrechen könnte! Nun, das können wir ja mit MULTISCREEN, und zwar über die Bufferbegrenzung (siehe Ausgabe 3/89, Seite 16). Probieren wir es also mit der Angabe 1,1,1 und anschließend 0,0,1, wieder von der Mitte aus, wobei wir beim zweitenmal < CONTROL > und f-Taste gleichzeitig drücken, so daß die Bufferbegrenzung wirksam wird. Nun wird das Ausfüllen gestoppt - aber das Ergebnis ist wenig befriedigend, es entsteht nur in der Mitte der hellen Fläche ein großes Loch. Verkleinerung des Buffers hilft auch nichts, da w'ird das Loch eben etwas kleiner, aber die Häuser von vorhin wollen nicht entstehen. Das hängt mit der Arbeitsweise des FILL-Befehls zusammen. Er “merkt“ sich alle noch nicht ausgefüllten Punkte, an denen er vorbeikommt, in einem bestimmten Speicherbereich, eben dem Buffer. Wenn der klein ist, kann er gar nicht so weit wie sonst in das Innere einer kompliziert gebauten Grafik Vordringen, sondern beginnt bald damit, den vollen Buffer abzuarbeiten — und dabei entsteht eben meist ein einfaches, grafisch nicht sehr wirkungsvolles Loch. Wer das COPY-SHOP-Programm besitzt, hat da schon eher Möglichkeiten. Der Ausfüllvor-gang dieses Programms läßt sich unterbrechen! Damit ist schon vieles möglich. Aber leider ist dieser FILL-Bcfehl nach einem anderen Prinzip gebaut als der des CPC-BASIC; er geht viel logischer und zusammenhängender und damit, was das Ausfüllen betrifft, sehr sinnvoll vor. Aber gerade infolge dieser rationellen Arbeitsweise erzeugt er nicht die weit ausgreifenden, bizarren Strukturen, die den CPC-FILL grafisch so reizvoll machen. Und der ist eine im ROM verankerte Maschinenroutine, in deren Ablauf, so glaubt man allgemein, nicht eingegriffen werden kann. Oder sollte das doch möglich sein? Nun, wir stellen Ihnen hier ein Programm vor, das Sie zwar, falls Sie nicht zur DATABOX greifen wollen, einige Tipparbeit kosten wird - aber es lohnt sich! Sie haben damit die Möglichkeit, den originalen Strukturverlauf des CPC-FILL-Befehls an jeder Stelle zu unterbrechen und den jeweiligen Zustand abzuspeichern. Hier dieser FILL-Unterbrecher: Die Numerierung ab 1000 ermöglicht es, daß Sie das Programm jederzeit an ein Bildprogramm, an dem Sic gerade arbeiten, mit MERGE anhängen können. Fügen Sie dann vordem abschließenden EN D-Befehl ein: GOTO 1000. Sie können natürlich auch ein fertiges Bild von Diskette laden und das Unterbrecherprogramm anschließen. Geben Sie zunächst einen Namen für das abzuspeichernde Bild ein, und steuern Sie, wie in MULTISCREEN, den links unten erscheinenden Pfeil mit den Cursortasten. Die f-Taste leitet das Ausfül-lcn ein, durch zweimaligen Druck vo < ESC > wird es gestoppt. Wollen Sie es weiterlaufen lassen, drücken Sie eine beliebige Taste; wollen Sie aber den augenblicklichen Zustand abspeichern, so drücken Sie ein drittes Mal < ESC > und anschließend die Leertaste. Jetzt wird gespeichert; danach kann das Ausfüllen an einer anderen Stelle fortgesetzt und ebenso wieder unterbrochen werden, nur daß jetzt schon nach dem ersten Druck von < ESC > gestoppt, nach dem zweiten gespeichert wird. So bekommen Sie mehrere Füll-Zustände (bis zu 9 sind möglich!) auf der Diskette, können die besten heraussuchen und über MULTISCREEN bearbeiten (Bild 5). Weiches Programm liefert Ihnen sonst ein solches Bild? Leider ist es zu groß, als daß man es einfach an MULTISCREEN anhängen könnte. Aber in der nächsten Ausgabe bieten wir Ihnen eine Möglichkeit, von MULTISCREEN aus mit dem FILL-Unterbrecher zu arbeiten. 4. Ausfällen, leicht exotisch Leider läuft der FILL-Unterbrecher nicht auf dem CPC 464. Damit auch dessen Besitzer zu ihrem Recht kommen, stellen wir Ihnen abschließend ein auf allen CPCs verwendbares Aus-füllprogramm vor, das Ihnen sicher ein Schmunzeln entlocken wird; denn es geht sehr eigenwillige Wege und erzeugt höchst exotische Füllmuster. Zudem frißt es sich mit provozierender Langsamkeit durch eine komplizierte Grafik (nur für solche Bilder, wie z.B. den “Eiglobus“, ist es geeignet); Sic können sich, während es arbeitet, ruhig zu einer Tasse Kaffee niedersetzen und von Zeit zu Zeit den erreichten Zustand durch Druck auf die Leertaste abspe ehern. Geht es Ihnen gar zu eigenwill ge Wege, so können Sie es mit der T bulatortaste stoppen, den Cursorpfc woanders hinbewegen und dort foi fahren. So bekommen Sie krau: Strukturen, wie sie Ihnen kein anden Programm liefern kann: Viel Spaß mit diesem Exotic-FILL! In der nächsten Ausgabe werden wir dann sehen, wie die verschiedenen FILL-Befehle sich gegenüber den Farben verhalten und wie die Besonderheiten der Farbdarstellung im CPC sich für neue grafische Strukturen nützen lassen. Friedrich Belzner/cd , CPCAI |
|