CIRCLE
CIRCLE | |
Syntax: | CIRCLE <x>,<y>,<rx>,<ry>,<f> |
Parameter | |
x: X-Koordinate Mittelpunkt (0..319 / 0..159) | |
y: Y-Koordinate Mittelpunkt (0..199) | |
rx: Radius in X-Richtung (0..255) | |
ry: Radius in Y-Richtung (0..255) | |
f: Farbquelle (0..2 / 0..4) | |
Einordnung | |
Typ: | Anweisung |
Kontext: | Grafik |
Aufgabe: | Zeichnen von Ellipsen (u. Kreisen) |
Abkürzung: | keine |
Token: | $64 $42 (100 66) |
Verwandte Befehle | |
LINE - REC - BLOCK - PLOT - ARC - ANGL - PAINT |
Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort CIRCLE.
Typ: Anweisung
Syntax: CIRCLE <x>,<y>,<rx>,<ry>,<f>
Mit CIRCLE zeichnet man Ellipsen bzw. Kreise (Sonderfall der Ellipse) um einen Mittelpunkt (<x>,<y>) mit den Radien <rx> und <ry> in der Farbe, die durch <f> bestimmt wird (s. dazu HIRES). In x-Richtung darf eine Ellipse 255 Punkte Radius aufweisen, in y-Richtung ebenfalls. Punkte, die über den Bildschirmrand hinausgehen würden, werden auf diese höchstmöglichen Koordinaten begrenzt, der Interpreter malt aber weiter. 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.
Beachten: Ist <f> auf invers gesetzt (2 in HIRES oder 4 in MULTI), dann wird der Kreis löcherig gezeichnet.
Wird kein Parameter eingegeben, so erscheint die Fehlermeldung ?SYNTAX ERROR, bei einem falschen Wert erscheint ?ILLEGAL QUANTITY ERROR.
Beispiel[Bearbeiten | Quelltext bearbeiten]
Dieses Programm erzeugt die abgebildete Grafik.
100 HIRES 0,1 110 FOR i=0 TO 9: FOR j=0 TO 5: k=(i+j)/2 120 CIRCLE 160+15*i,100+15*j,15-k,15-k,1 130 CIRCLE 160-15*i,100+15*j,15-k,15-k,1 140 CIRCLE 160-15*i,100-15*j,15-k,15-k,1 150 CIRCLE 160+15*i,100-15*j,15-k,15-k,1 160 NEXT: NEXT 170 FOR i=0 TO 9: FOR j=0 TO 5 180 PAINT 160+15*i,100+15*j,1 190 PAINT 160-15*i,100+15*j,1 200 PAINT 160-15*i,100-15*j,1 210 PAINT 160+15*i,100-15*j,1 220 NEXT: NEXT 230 WAIT 198,255
Beispiel übernommen und angepasst aus dem Buch Spiele mit Computergrafik.
(Die Abarbeitungszeit auf einem Original-C64 ist sehr lang.)
$ | % | @ | ANGL | ARC | AT | AUTO | BCKGNDS | BFLASH | BLOCK | CALL | CENTRE | CGOTO | CHAR | CHECK | CIRCLE | CMOB | COLD | COLOUR | COPY | CSET | DELAY | DESIGN | DETECT | DIR | DISABLE | DISAPA | DISK | DISPLAY | DIV | DOWN | DRAW | DUMP | DUP | ELSE | END LOOP | END PROC | ENVELOPE | ERRLN | ERRN | EXEC | EXIT | EXOR | FCHR | FCOL | FETCH | FILL | FIND | FLASH | FRAC | GLOBAL | GRAPHICS | HI COL | HIRES | HRDCPY | INKEY | INSERT | INST | INV | JOY | KEY | LEFT | LIN | LINE | LOCAL | LOOP | LOW COL | MEM | MERGE | MMOB | MOB OFF | MOB SET | MOD | MOVE | MULTI | MUSIC | NO ERROR | NRM | OFF | OLD | ON ERROR | ON KEY | OPTION | OUT | PAGE | PAINT | PAUSE | PENX | PENY | PLACE | PLAY | PLOT | POT | PROC | RCOMP | REC | RENUMBER | REPEAT | RESET | RESUME | RETRACE | RIGHT | RLOCMOB | ROT | SCRLD | SCRSV | SECURE | SOUND | TEST | TEXT | TRACE | UNTIL | UP | USE | VOL | WAVE