LINE
LINE | |
Syntax: | LINE <x1>,<y1>,<x2>,<y2>,<f> |
Parameter | |
x1: X-Anfangskoordinate (0..319 / 0..159) | |
y1: Y-Anfangskoordinate (0..199) | |
x2: X-Zielkoordinate (0..319 / 0..159) | |
y2: Y-Zielkoordinate (0..199) | |
f: Farbquelle (0..2 / 0..4) | |
Einordnung | |
Typ: | Anweisung |
Kontext: | Grafik |
Aufgabe: | Ziehen einer Linie zwischen zwei Grafikpunkten |
Abkürzung: | keine (TSB: lI )
|
Token: | $64 $03 (100 3) |
Verwandte Befehle | |
PLOT - REC - BLOCK - CIRCLE - ARC - ANGL - PAINT |
Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort LINE.
Typ: Anweisung
Syntax: LINE <x1>,<y1>,<x2>,<y2>,<f>
Mit LINE verbindet man zwei Orte auf dem Grafikbildschirm durch eine gerade Linie. Der Anfangspunkt der Linie wird durch die beiden ersten Parameter <x1> und <y1> bestimmt, der Endpunkt durch die Parameter drei und vier (<x2> und <y2>). Zulässige Werte sind 0..319 für x (im Hires-Modus) bzw. 0..159 für x (im Multicolor-Modus). Für y sind in beiden Fällen Werte von 0 bis 199 erlaubt. Die Farbe der Linie 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.
Bei Überschreitung der Bildschirmgrenzen bei den Parametern begrenzt der Interpreter die Werte und zeichnet weiter. Wird kein Parameter eingegeben, so erscheint die Fehlermeldung ?SYNTAX ERROR, bei einem falschen Wert erscheint ?BAD MODE ERROR.
Beispiele[Bearbeiten | Quelltext bearbeiten]
Übernommen und angepasst aus dem Buch Spiele mit Computergrafik.
Beispiel 1[Bearbeiten | Quelltext bearbeiten]
80 REM Initialisierung der Koordinaten 90 PRINT"{clear/home} 0 von 30"; 100 DIM x(31,19), y(31,19) 110 FOR i=0 TO 30:FOR j=0 TO 18 120 x(i,j)=10+i*10+SIN(j/3)*10 125 y(i,j)=10+j*10+SIN(i/3)*10 130 PRINT AT(0,0)"";i; 140 NEXT:NEXT 144 REM Linien ziehen 145 HIRES 0,1 150 FOR i=1 TO 30: FOR j=0 TO 18 155 LINE x(i,j),y(i,j),x(i-1,j),y(i-1,j),1 160 NEXT:NEXT 170 FOR i=0 TO 30: FOR j=1 TO 18 175 LINE x(i,j),y(i,j),x(i,j-1),y(i,j-1),1 180 NEXT:NEXT 184 REM Flaechen fuellen 185 FOR i=0 TO 29:FOR j=0 TO 17 190 IF ((i+j) AND 1) THEN PAINT x(i,j)+4,y(i,j)+4,1 195 NEXT:NEXT 200 WAIT 198,255
Erzeugt die oben abgebildete Grafik.
Beispiel 2[Bearbeiten | Quelltext bearbeiten]
100 HIRES 0,1 110 r=140:w={pi}/4 115 REPEAT 120 x=r*COS(w):y=r*SIN(w) 130 LINE 160+x,100-y,160-y,100-x,1 140 LINE 160-y,100-x,160-x,100+y,1 150 LINE 160-x,100+y,160+y,100+x,1 160 LINE 160+y,100+x,160+x,100-y,1 170 w=w+.1:r=r*.9 180 UNTIL w>2*{pi} 190 WAIT 198,255
$ | % | @ | 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