DRAW (BASIC 3.5)

Aus C64-Wiki
Zur Navigation springenZur Suche springen
DRAW (BASIC 3.5)
Syntax: DRAW [<Farbquelle>] [, <Startkoordinaten>] [TO <Zielkoordinaten>] [TO ...]]
Parameter
<Farbquelle>: numerischer Ausdruck im Wertebereich von 0 bis 1 (Hires-Grafik) bzw. 0 bis 3 (Multicolor-Grafik)
<Startkoordinaten>: [+|-]<X>,[+|-]<Y> | <Strecke>;<Winkel>
<Zielkoordinaten>: [+|-]<X>,[+|-]<Y> | <Strecke>;<Winkel>
Einordnung
Typ: Anweisung
Kontext: Grafikanweisung
Aufgabe: Zeichnen von Punkten und Linien
Abkürzung: dR
Token: $e5 (229)
Verwandte Befehle
BOX, CIRCLE, PAINT

Anmerkung: Dieser Artikel beschreibt den BASIC-Befehl DRAW ab Commodore BASIC V3.5 oder höher.


Der Befehl DRAW dient zum Zeichnen von Punkten und Linien auf dem Grafikbildschirm und ist dabei sehr flexibel. Die Pixelpositionen können mit absolut-kartesischen bzw. relativ-kartesischen Koordinaten oder als Vektor mit den Angaben Länge und Winkel angegeben werden. Zumindest ein Punkt an der Position des aktuellen Pixelcursors (ohne Parameter) wird mit entsprechender Farbe gesetzt oder ein Linienzug durch die angegebenen Positionen gezogen.

Parameter:

  • Farbquelle: Definiert die Farbe , in der gezeichnet wird. Die möglichen Werte sind abhängig vom Grafikmodus (vgl. COLOR). Die Angabe ist optional, Standard ist die Vordergrundfarbe (=1), ein Wert von 0 entspricht der Hintergrundfarbe, was einem Löschen entspricht. Ein Komma muss zwingend vor einer folgenden Positionsangabe gesetzt werden.
  • Startkoordinaten: optional, Standard ist die Position des Pixelcursors.
  • Zielkoordinaten: optional, eventuell mehrfach hintereinander. Wenn keine Zielangabe gegeben ist, wird nur ein Punkt gezeichnet.

Kartesische Koordinaten werden in der Form X,Y angegeben, Vektor-Parameter dagegen in der Form Streckenlänge;Winkel. Die Winkelangabe erfolgt in Grad im Uhrzeigersinn, wobei 0 Grad senkrecht nach oben gerichtet ist. Für relative Positionsangaben mit Variablen müssen diese in Klammern geschrieben werden.

Es können auch mehrere Koordinaten- oder Vektorangaben hintereinander (also ohne TO getrennt) angegeben werden. In diesem Fall wird für für jede solche Positionsangabe ein einzelner Punkt gesetzt.

Wird der Befehl ohne aktiviertem Grafikmodus (siehe GRAPHIC) aufgerufen, erscheint die Fehlermeldung ?NO GRAPHICS AREA ERROR.
Werte bei absoluten oder relativen Koordinaten, aber auch bei den Vektorparametern Länge und Winkel, die außerhalb des Bereichs 0 bis 65535 liegen, führen zu einem ?ILLEGAL QUANTITY ERROR. Der gleiche Fehler tritt auf, wenn der Wert für die Farbquelle außerhalb des zum aktuellen Grafikmodus gehörenden Werteumfangs liegt.


Beispiele[Bearbeiten | Quelltext bearbeiten]

DRAW

Zeichnet einen Punkt in der Vordergrundfarbe an der aktuellen Position des Pixelcursors.

DRAW 0

Zeichnet einen Punkt in der Hintergrundfarbe an der aktuellen Position des Pixelcursors.

DRAW 1,160,100,180,100

Zeichnet einzelne Punkte in der Vordergrundfarbe an den Positionen (160, 100) und (180, 100).

X=50: DRAW ,+40,-(X)

Zeichnet einen Punkt in der Vordergrundfarbe an der Position (+40, -50) relativ zur aktuellen Position des Pixelcursors.

DRAW 2,10;0

Zeichnet einen Punkt in der Multicolorfarbe 10 Punkte senkrecht oberhalb vom bisherigen Pixelcursor.

DRAW TO 100,100

Zeichnet eine Linie vom Pixelcursor zur Position (100, 100).


Beispielprogramm

10 GRAPHIC 1,1
20 LOCATE 160, 100
30 FOR I=0 TO 359 STEP 15: DRAW 1,160,100 TO 20;I: NEXT
40 LOCATE 160,50
50 DRAW
60 FOR I=0 TO 359 STEP 15: DRAW 1,50;I: LOCATE 160,50: NEXT
70 DRAW 1,20,20 TO 300,20 TO 300,180 TO 20,180 TO 20,20
80 LOCATE 20,160
90 FOR I=1 TO 14: DRAW TO +10,-10 TO +10,+10: NEXT