APPLICATIONSDIVERS ★ LÄNGENAUSDEHNUNG (CPC MAGAZIN) ★

Längenausdehnung (CPC Magazin)Applications Divers
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

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:

  1. Ein Beibehalten des 1. Wertes führt zu senkrechten Linien.
  2. Ein Beibehalten des 2. Wertes führt zu waagrechten Linien.
  3. Es werden auch Werte akzeptiert, die größer als die Bildschirmgrenzen sind.

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
bis zum nächsten Kommando mit Farb-nummer. Probieren Sie:

10 plot 100,100,1
20 draw 200,100
30 plot 100,110,2
40 draw 200,110
50 plot 100,120,3
60 draw 200,120

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
20 for position=0 to 400 step 10
30 plot 100,position
40 drawr 100,0 50 next position

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.
Neu ist der Befehl SYMBOL in Zeüe 270, den ich nur ganz kurz erklären will: Der CPC stellt bei jedem Einschalten die Zeichen mit den Nummern 241 bis 256 zur eigenen Definition zur Verfügung. Von 33 bis 240 sind feste Zeichen (Alphabet, Zahlen und Grafik) vorgegeben, die Sie im Anhang des Handbuches abgedruckt finden. Wir haben das Grad-Zeichen als Nr. 255 definiert. Verwenden Sie am besten für die Gestaltung und Berechnungen den in diesem Heft abgedruckten Symbol-Editor. Angesprochen wird das Zeichen in Zeile 370 mit CHR$(255). Es erscheint dann durch das Printkommando auf dem Büdschirm Die CHR$(240) und CHR$(241) finden Sie im Anhang abgedruckt. Es sind Pfeile nach oben und nach unten.

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.
0 Die Taste wurde ohne SHIFT und
ohne CTRL gedrückt.
32 Die Taste wurde mit SHIFT, aber ohne CTRL gedrückt.
128 Die Taste wurde ohne SHIFT, aber mit CTRL gedrückt.
160 Die Taste wurde mit SHIFT und mit CTRL 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.

Berthold Freier, CPC Magazin

★ PUBLISHER: CPC Magazin
★ YEAR: 1986
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: CPC MAGAZIN 1985 1986
★ AUTHOR: Berthold Freier
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Laengenausdehnung    (CPC  Magazin)    LISTING    GERMANDATE: 2021-02-02
DL: 203
TYPE: PDF
SiZE: 665Ko
NOTE: 5 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » προ-πο
» Applications » I.A.O (Radio-Plans n°478)
» Applications » Etude du sens de variation pour TOUTES fonctions (CPC Infos)
» Applications » Radio Amateur: Tout sur l'éléctronique
» Applications » CPC-Hardcopy
» Applications » Parabel (Schneider Aktiv Special)
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 436 millisecondes et consultée 1069 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.