CIRCLE (BASIC 3.5)

Aus C64-Wiki
Wechseln zu: Navigation, Suche
CIRCLE (BASIC 3.5)
Format: CIRCLE [<Farbquelle>], [<Mittelpunkt-Koordinaten>] , <XR> [,[ <YR>] [,[ <Startwinkel>] [,[ <Endwinkel>] [,[ <Drehwinkel>] [,[ <Segmentwinkel>] ]]]]]
Parameter
<Farbquelle>: numerischer Ausdruck im Wertebereich von 0 bis 1 (Hires-Grafik) bzw. 0 bis 3 (Multicolor-Grafik)
<Mittelpunkt-Koordinaten>: [+|-]<X>,[+|-]<Y> | <Strecke>;<Winkel>
<XR>: X-Radius, numerischer Ausdruck im Wertebereich 0 bis 65535
<YR>: Y-Radius, numerischer Ausdruck im Wertebereich 0 bis 65535
<Startwinkel>: numerischer Ausdruck im Wertebereich 0 bis 65535
<Endwinkel>: numerischer Ausdruck im Wertebereich 0 bis 65535
<Drehwinkel>: numerischer Ausdruck im Wertebereich 0 bis 65535
<Segmentwinkel>: numerischer Ausdruck im Wertebereich 1 bis 255
Einordnung
Typ: Anweisung
Kontext: Grafikanweisung
Aufgabe: Zeichnen von Kreisen, Ellipsen und Polygonen
Abkürzung: cI
Verwandte Befehle
BOX, DRAW, PAINT

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

Die Anweisung CIRCLE (engl.: Kreis) dient zum Zeichnen von Kreisen, Ellipsen und Polygonen in einem der Grafikmodi für hochauflösende oder Multicolor-Grafiken.

CIRCLE hat folgende 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.
  • Mittelpunkt-Koordinaten: Die Koordinaten des Mittelpunkts der gezeichneten Figur. 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. Kartesische Koordinaten und die Streckenlänge dürfen im Bereich von -65535 bis +65535 liegen, eine Winkelangabe muss im Bereich von 0 bis +65535 liegen. Andere Werte verursachen die Fehlermeldung ?ILLEGAL QUANTITY ERROR. Der Parameter ist optional, ohne Angabe wird die Position des Pixelcursors verwendet.
  • XR: Radius der X-Achse. Dieser Wert muss angegeben werden. Erlaubt sind Werte von 0 bis 65535. Werte außerhalb dieses Bereichs lösen einen ?ILLEGAL QUANTITY ERROR aus. Intern wird der Parameter als Ganzzahl interpretiert, d.h. Werte über 32768 sind negativ.
  • YR: Radius der Y-Achse. Dieser Wert ist optional, wenn nicht angegeben wird XR verwendet. Erlaubt sind Werte von 0 bis 65535. Werte außerhalb dieses Bereichs lösen einen ?ILLEGAL QUANTITY ERROR aus. Intern wird der Parameter als Ganzzahl interpretiert, d.h. Werte ab 32768 sind negativ.
  • Startwinkel: Optionaler Wert, der den Winkel angibt, ab dem die Figur gezeichnet wird. Erlaubt sind Werte von 0 bis 65535 (sinnvoll aber nur von 0 bis 360), außerhalb dieses Bereichs wird ein ?ILLEGAL QUANTITY ERROR ausgegeben. Standardwert ist 0.
  • Endwinkel: Optionaler Wert, der den Winkel angibt, bis zu dem die Figur gezeichnet wird. Erlaubt sind Werte von 0 bis 65535 (sinnvoll aber nur von 0 bis 360), außerhalb dieses Bereichs wird ein ?ILLEGAL QUANTITY ERROR ausgegeben. Der Endwinkel darf auch kleiner als der Startwinkel sein. Standardwert ist 0.
  • Drehwinkel: Optionaler Wert, der den Winkel angibt, um den die Figur gegenüber dem Mittelpunkt gedreht wird. Erlaubt sind Werte von 0 bis 65535 (sinnvoll aber nur von 0 bis 360), außerhalb dieses Bereichs wird ein ?ILLEGAL QUANTITY ERROR ausgegeben.
  • Segmentwinkel: Optionaler Wert, der den Öffnungswinkel eines Kreissegments angibt. Je kleiner der Wert, umso mehr Ecken hat die gezeichnete Figur. Erlaubt sind die Werte von 1 bis 255, andere Werte lösen einen ?ILLEGAL QUANTITY ERROR aus.

Anmerkungen:

  • Negative Werte für X- und Y-Radius beeinflussen Startposition (0° bedeutet senkrecht über dem Mittelpunkt) und Zeichenrichtung:
Vorzeichen XR Vorzeichen YR Startposition Zeichenrichtung
+ + Uhrzeiger
- + Gegenuhrzeiger
+ + 180° Gegenuhrzeiger
- - 180° Uhrzeiger
  • Zum Zeichnen eines Vielecks mit n Ecken muss 360/n als Segmentwinkel angegeben werden.
  • Alle Winkelangaben bedeuten Grad in Zeichenrichtung (normalerweise Uhrzeigersinn), ausgehend von der Startposition.

Beispiele[Bearbeiten]

CIRCLE 1,100,100,30

Zeichnet einen Kreis mit Radius 30 um den Mittelpunkt an Position 100,100.

CIRCLE ,,,30,,,,,90

Zeichnet ein um 45° gedrehtes Quadrat um die aktuelle Position des Pixelcursors.

CIRCLE ,,,30,50,,,,90

Zeichnet eine um 45° gedrehte Raute.

10 CIRCLE 1,100,100,30,30,15,105
20 DRAW TO 100,100
30 DRAW TO 30;15

Zeichnet einen Kreissektor mit Radius 30, Startwinkel 15° und Endwinkel 105°

LOCATE 0,99:I=0:DO:CIRCLE 1,+5,+0,ABS(65536*I-5),5,270-180*I,450-180*I:I=1-I:LOOP WHILE RDOT(0)<319

Zeichnet, ohne abzusetzen, eine Wellenlinie vom linken zum rechten Bildschirmrand. Diese Beispiel macht Gebrauch von relativen Grafikkoordinaten sowie der Umkehrung der Malrichtung durch den negativen X-Radius.