PLOT

Aus C64-Wiki
Wechseln zu: Navigation, Suche
PLOT
Format: PLOT <x>, <y>, <f>
Parameter
x: X-Koordinate (0..319 / 0..159)
y: Y-Koordinate (0..199)
f: Farbquelle (0..2 / 0..4)
Einordnung
Typ: Anweisung
Kontext: Grafik
Aufgabe: Setzen eines Grafik-Punktes
Abkürzung: keine
Verwandte Befehle
LINE - REC - BLOCK - CIRCLE - ARC - ANGL - PAINT


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

Typ: Anweisung 
Syntax: PLOT <x>, <y>, <f>

PLOT malt einen einzelnen Grafik-Punkt (Pixel) an die Position <x>,<y> in der Farbe, die durch <f> bestimmt wird. Je nachdem, welcher Grafikmodus aktiviert ist (siehe HIRES und MULTI), hat man in x-Richtung 320 ansteuerbare Positionen (Hires-Modus) oder 160 (Multicolor-Modus). In y-Richtung besträgt die Auflösung immer 200 Pixel. Auch die Farbe 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.

Das Schachbrett entsteht durch SGN, das Rauschen durch RND
Wird kein Parameter eingegeben, so erscheint die Fehlermeldung ?SYNTAX ERROR, bei einem falschen Wert erscheint ?BAD MODE ERROR.


Der PLOT-Befehl enthält Simons' Basic (einziges) Osterei: Gibt man die folgende Zeile ein 

PLOT 383,0,127:

dann antwortet der Interpreter mit der Textausgabe "ds-cbm". 
Beispiel 1: 

100 HIRES 1,0
110 FOR X=.5 TO 159.5:FOR Y=.5 TO 99.5
120 R=SQR(X*X+Y*Y):H=.7:IF R<90 THEN H=.7+.7*(90-R)/90
130 IF SGN(SIN(X/4)*SIN(Y/4))=>0 THEN H=1-H
140 IF H<RND(1) THEN 160
150 PLOT 159.5+X, 99.5-Y,1:PLOT 159.5-X, 99.5+Y,1: GOTO 170
160 PLOT 159.5+X, 99.5+Y,1: PLOT 159.5-X, 99.5-Y,1
170 NEXT:NEXT
180 WAIT 198,255
 
(erzeugt die abgebildete Grafik)
Die kreisförmige Interferenz ist ein Moiré-Effekt
Beispiel 2:

100 HIRES 1,0
110 FOR X=0 TO 159:FOR Y=0 TO 99
120 R=X*X+Y*Y
130 IF (R/150 AND 1) THEN 160
140 PLOT 160+X,100+Y,1:PLOT 160-X,100+Y,1
150 PLOT 160-X,100-Y,1:PLOT 160+X,100-Y,1
160 NEXT:NEXT
170 WAIT 198,255


Beispiele übernommen und angepasst aus dem Buch Spiele mit Computergrafik.
(Die Abarbeitungszeit auf einem Original-C64 ist sehr lang.)