LINE

Aus C64-Wiki
Wechseln zu: Navigation, Suche
LINE
Format: 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
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>). Die Farbe der Linie wird durch den letzten Parameter (<f>) bestimmt. 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. 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.

(thumbnail)
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.


Beispiel 1: 

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                          Initialisierung der Koordinaten
125 y(i,j)=10+j*10+SIN(i/3)*10
130 PRINT AT(0,0)"";i;
140 NEXT:NEXT

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              Linien ziehen
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

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     Flächen füllen
195 NEXT:NEXT
200 WAIT 198,255
 
(erzeugt die abgebildete Grafik)
(thumbnail)
Die Eckpunkt-Linien der Quadrate ergeben logarithmische Spiralen
Beispiel 2:

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


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