LINE

Aus C64-Wiki
Zur Navigation springenZur Suche springen
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.

Viele kurze Linien können eine geschwungene lange vortäuschen

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]

Die Eckpunkt-Linien der Quadrate ergeben logarithmische Spiralen
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