★ APPLICATIONS ★ DIVERS ★ LÄNGENAUSDEHNUNG (CPC MAGAZIN) ★ |
Längenausdehnung (CPC Magazin) | Applications Divers |
Diesmal behandeln wir die Grundlagen der Grafikerstellung Nachdem wir uns in der vierten Folge unseres Kurses "Basic-Stufen" ausgiebig mit der sehr vorteilhaften Window-Technik beschäftigt haben, wollen wir uns im heutigen Abschnitt unseres Aufstiegs in die Höhen von Basic mit einigen Grundlagen der Grafikerstellung befassen. Bekanntlich sagt ja ein Bild mehr als tausend Worte. Auch in diesem Bereich stellen die Schneider CPC eine ganze Reihe komfortabler und wirkungsvoller Befehle zur Verfügung. Bitte erinnern Sie sich noch einmal an den Beginn dieser Serie im Mai-Heft, als wir den Bildschirm wie ein Blatt Papier behandelt haben und die Aufteilung in 25 Zeilen und 20, 40 oder 80 Spalten je nach angewähltem Mode erklärten. Bei der Grafikdarstellung wird die Aufteilung noch verfeinert. Es sind in der waagrechten Richtung 640 Bildpunkte und in der senkrechten 400 Bildpunkte ansprechbar. Ein äußerst wichtiger Unterschied besteht allerdings in der Zählrichtung, denn in der Waagrechten wird wie beim Textbildschirm von links nach rechts gezählt, in der Senkrechten wird jedoch unten begonnen und nach oben gezählt !! Letzteres ist sinnvoll, wenn man an Tabellen und Koordinatensysteme denkt, erfordert aber bei der Mischung von Text- und Grafikdarstellungen permanente Berechnungen. Wer sich nun an die Zeilenanzahl 25 erinnert, der kann schnell ausrechnen, daß somit je Zeile 16 Grafikpunkte zu berücksichtigen sind -und schon wird es wieder einfacher und überschaubarer. Grafik-Befehle Mit soviel theoretischem Hintergrund wollen wir es vorläufig bewenden lassen und stürzen uns in die Praxis. Als ersten Grafik-Befehl entdecken wir DRAW. Also ran an's Keyboard, eingeschaltet und direkt DRAW 100,100 eingegeben. Der CPC zeichnet einen kleinen schrägen Strich in die linke untere Ecke. Der Grafikcursor wurde beim Ansprechen des Grafikmodus automatisch auf den Nullpunkt links unten gesetzt und führte dort eine Linie zu dem Punkt, der 100 Bildschirmpunkte höher und ebenso viele weiter rechts liegt. Wenn wir nun DRAW 200,100 tippen, so verbindet der CPC den letzten Punkt mit dem im Befehl neu angegebenen Ziel. Das heißt also, daß bei diesem Kommando der zuletzt gezeichnete Endpunkt automatisch als Beginn der neuen Linie verwendet wird. Probieren Sie jetzt ruhig einige weitere Werte, und Sie werden feststellen:
Versuchen Sie auch einmal, eine vorher festgelegte Form, z.B. einen Briefumschlag, zu zeichnen. Das scheitert meist daran, daß der CPC immer am Nullpunkt beginnt. Wir benötigen aus diesem Grund den Befehl MOVE. Dieses Kommando bewirkt im Grunde das gleiche wie der DRAW-Befehl. Allerdings wird die Verbindungslinie nicht gezeichnet, sondern nur der Grafikcursor an die angegebene Stelle bewegt. Geben Sie spaßeshalber einige MOVE-Kommandos mit wechselnden Werten ein. Erwartungsgemäß wird auf dem Bildschirm nichts zu sehen sein! Wiederholen Sie dasselbe dagegen mit dem PLOT-Kommando, so werden Sie jeweils einen Punkt an dem angesprochenen Ort vorfinden. Damit ist Ihnen die Funktion dieses dritten Grafikbefehls klar: Er bewegt den Cursor ebenso wie das MOVE-Kommando an die gewünschte Stelle, setzt dort jedoch einen Punkt. Damit haben wir schon das Rüstzeug für einfache Zeichnungen, die allerdings bisher nur einfarbig ausfallen. Das ändern wir sofort. Alle drei bisher besprochenen Kommandos vertragen nämlich als dritte Angabe nach den Koordinaten die Nummer des Farbstiftes, die der PEN-Kennzeichenung entspricht. Sie muß lediglich beim Wechsel der Farbe eingetragen werden und güt 10 plot 100,100,1 Sie haben jetzt drei waagrechte Linien auf dem Schirm stehen. Auffallend ist, daß jeweils vom Ausgangspunkt eine Linie nach rechts um 100 Bildpunkte gezogen wird und Sie jedesmal die neuen Koordinaten ausrechnen müssen. Das wäre eigentlich gar nicht erforderlich, denn alle drei bisherigen Befehle gibt es noch in einer 2. Version, wobei an das Codewort nur ein R angehängt wird, also: DRAWR, PLOTR, MOVER. Das R Wir zeichnen sagt dem Computer, daß er die folgenden beiden Werte - die auch negativ sein dürfen - zur aktuellen Koordinate dazuzählen muß. ”100 Bildpunkte nach rechts eine Linie zeichnen" heißt also in dieser Kurzform DRAWR 100,0. Genießen Sie diese Vereinfachung mit folgendem Programm: 10 cls Sollten bei Ihnen noch Unklarheiten vorhanden sein, so probieren Sie ruhig weiter, bis Sie alle Varianten der Befehle verstanden haben! Jetzt wollen wir an die Grenzen gehen und verringern die Schrittweite in Zeile 20 des obenstehenden Listings auf 4: 20 for position=0 to 400 step 4 Es entsteht ein gestrichelter Balken, was zu erwarten war. Die Linien sind allerdings schon sehr eng für Schrittweite 4. Ändern Sie bitte nacheinander diesen Wert auf 2 und auf 1; beachten Sie bei den Probeläufen die Zeit! Übenaschenderweise ist das Büd genau das gleiche. Die Zeit für den Wert 2 beträgt ca. 1,5 Sekunden, beim Wert 1 braucht der CPC aber 3 Sekunden. Der Zeitunterschied ist aus dem Arbeitsaufwand an Durchläufen erklärbar. Wie aber ensteht das gleiche Bild? Des Rätsels Lösung ist, daß der CPC in seinem 16-KByte-Video-RAM 128.000 Bit für den Bildschirm unterbringt, 640 x 400 Punkte aber 256.000 Bit benötigen würden. Also haben die Hersteller jeweils zwei übereinanderliegende Zeilen zusammengefaßt. Dies bedeutet für uns, daß wir bei allen Anwendungen grundsätzlich mit der Schrittweite 2 arbeiten. Alles andere ist Zeitverschwendung. Wie das mit senkrechten Strichen in Mode 0, 1 oder 2 funktioniert, müßten Sie eigentlich selbst herausbekommen können. Das Steigen des gelben Streifens in obigem Testprogramm brachte mich auf die Idee, als Beispiel diesmal ein Thermometer zu realisieren, bei dem die Quecksilbersäule steigt und fällt - aus Umweltschutzgründen verwenden wir lieber gefärbten Alkohol. Das Steigen ist klar: Wir zeichnen kurze rote Striche übereinander, wie es in Zeüe 110 und 120 geschieht. Beim Fallen müssen diese verschwinden. Also zeichnen wir mit dem Farbstift 0, die Ausführung sehen Sie in den Zeüen 200 und 210. Ein Thermometer Als problematisch erweist sich die Skalierung, denn wir können ja z.B. nach jeweüs 40 Büdpunkten einen Strich ziehen lassen (1 Grad entspricht dann 4 Büdpunkten). Diese Positionen stimmen aber nicht mit den Textzeüen überein, was bei der Beschriftung mit Zahlenwerten stört. Doch auch hier gibt es Abhilfe, nämlich die beiden Befehle TAG und TAGOFF. Der erste stellt den Einschalter und der zweite den Ausschalter dar. Nach Eingabe des TAG-Kommandos werden auch Printbefehle an der Position des Grafikcursors ausgegeben. Wir können also unsere Zahlen von -20 bis 40 in Zehnerschritten genau neben den Skalierungsstrichen ausdrucken und müssen lediglich zuvor den Grafikcursor mit PLOT positionieren. Die praktische Anwendung entnehmen Sie bitte den Zeilen 330 und 340. Am Ende sollte man das Ausschalten nicht vergessen! Erstmals begegnet uns auch der INKEY-Befehl, der aus diesem Codewort, einer in Klammern stehenden Tastennummer und dem Vergleichswert besteht. Betrachten Sie die Zeilen 50 und 60 und schlagen Sie im Anhang des Handbuchs die Nummernzuordnung zu den Tasten und Joystick-Signalen auf. Die Steuertaste "Cursor nach oben" hat die Tastennummer 0, "Cursor nach unten" die Nummer 2. Bei den Vergleichswerten gibt es 5 Möglichkeiten: -1 Die Taste wurde nicht gedrückt. In unserem Beispiel wird also die Zeile 50 dann weiter bearbeitet, wenn die Taste "Cursor nach oben" alleine gedrückt wurde, ansonsten geht es weiter in Zeile 60. Der Befehl GOSUB 80 in Zeile 50 bewirkt den Sprung zur Zeile 80, allerdings merkt sich der CPC diese Absprungstelle ! Er arbeitet nun ab Zeile 80 die dort stehenden Befehle so weit ab, bis er auf den Rücksprungbefehl RETURN trifft. Danach kehrt er zu der Absprungstelle zurück und werkelt dort weiter. Sie sehen, die heutige Lektion hat sehr viel Neues gebracht, aber das Thermometer unseres Beispielprogramms wird Sie sicherlich für die Mühen entschädigen. Sie finden es zusammen mit einer ganzen Reihe weiterer Anwendungen der heute vorgestellten Befehle in dem Programm zur Längenausdehnung. Sollten Sie also Weiterarbeiten wollen: Dort haben Sie Gelegenheit dazu.
|