REC

Aus C64-Wiki
Zur Navigation springenZur Suche springen
REC
Syntax: REC <x>,<y>,<b>,<h>,<f>
Parameter
x: X-Koordinate d. linken oberen Ecke (0..319 / 0..159)
y: Y-Koordinate d. linken oberen Ecke (0..199)
b: Seitenlänge waagerecht (0..319 / 0..159)
h: Seitenlänge senkrecht (0..199)
f: Farbquelle (0..2 / 0..4)
Einordnung
Typ: Anweisung
Kontext: Grafik
Aufgabe: Zeichnen eines Rechtecks im Grafikmodus
Abkürzung: keine (TSB: rE)
Token: $64 $08 (100 8)
Verwandte Befehle
PLOT - LINE - BLOCK - CIRCLE - ARC - ANGL - PAINT


Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort REC.

Typ: Anweisung 
Syntax: REC <x>,<y>,<b>,<h>,<f>

REC zeichnet ein Rechteck. Der Ort der linken oberen Ecke wird durch die beiden ersten Parameter <x> und <y> bestimmt, die Breite und Höhe des Rechtecks durch die Parameter <b> und <h>. Zulässige Werte sind 0..319 für <x> und <b> (im Hires-Modus) bzw. 0..159 (im Multicolor-Modus). Für <y> bzw. <h> sind in beiden Fällen Werte von 0 bis 199 erlaubt. Die Farbe der Kantenlinien wird durch den letzten Parameter (<f>) bestimmt. Sie hängt vom Grafikmodus ab und bezieht sich auf die Farbangaben hinter HIRES einerseits bzw. MULTI und LOW COL andererseits. Der Punkt 0,0 ist in der linken oberen Ecke. Die rechte untere Ecke des Rechtecks hat dann die Koordinaten x+b, y+h.

Stimmt die Parameteranzahl nicht mit 5 überein, erscheint die Fehlermeldung ?SYNTAX ERROR. Wenn die linke obere Ecke außerhalb des Bildschirmbereichs liegt, erscheint ?BAD MODE ERROR. Befinden sich Parameter für die X-Richtung außerhalb des Bereichs von 0 bis 65535 und für die Y-Richtung und Farbquelle außerhalb von 0 bis 255 erfolgt ein Abbruch mit ?ILLEGAL QUANTITY ERROR.

Beachten:

  • Bei Überschreitung der Bildschirmgrenzen bei den Längen entstehen unkorrekte Ergebnisse. Wenn die rechte untere Ecke nicht im sichtbaren Grafikbereich ist, verläuft die rechte und/oder untere Kante des Rechtecks in der letzten darstellbaren Zeile oder Spalte des darstellbaren Bereichs mit dem Nebeneffekt, dass der Linienzug nicht mehr genau zum Ausgangspunkt zurück führt. Das Rechteck bleibt dann mitunter "offen" oder hat eine überstehende Linie beim Startpunkt. (Dieses Verhalten ist behoben in TSB.)
  • Im Inverse-Modus (<f> = 2) wird sichtbar, dass die Kantenenden beim Zeichnen überlappen, also die Eck-Pixel doppelt gezeichnet werden und damit an diesen Stellen schlussendlich nicht invertiert wird (behoben in TSB).


Beispiele[Bearbeiten | Quelltext bearbeiten]

Beispiel Flugblätter[Bearbeiten | Quelltext bearbeiten]

Das folgende Programm erzeugt die abgebildete Grafik (siehe auch PAINT-Beispiel mit animierter Darstellung).

Beispiel übernommen und angepasst aus dem Buch Spiele mit Computergrafik.

Flugblätter. REC zeichnet die Ränder der Blätter.
100 HIRES 0,1
105 REPEAT: GET x$
110 x=290*RND(1): y=180*RND(1)
120 BLOCK x,y,x+29,y+19,0
130 REC x,y,29,19,1
140 UNTIL x$>"": PAINT 0,0,1
150 WAIT 198,255

Beispiel Fehldarstellung[Bearbeiten | Quelltext bearbeiten]

Eine Fehldarstellung bei Überschreitung der Bildschirmgrenzen (hier nur in X-Richtung, gilt nur für Simons' Basic):

Fehler in X-Richtung findet nicht zum Ausgangspunkt zurück
10 HIRES 0,1
20 REC 8,8,318,15,1
30 WAIT 198,255