CIRCLE (BASIC 3.5)
CIRCLE (BASIC 3.5) | |
Syntax: | 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 |
Token: | $e2 (226) |
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 |
---|---|---|---|
+ | + | 0° | Uhrzeiger |
- | + | 0° | 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 | Quelltext 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.
AUTO | BACKUP | BOX | CHAR | CIRCLE | COLLECT | COLOR | COPY | DEC | DELETE | DIRECTORY | DLOAD | DO | DRAW | DS | DS$ | DSAVE | EL | ELSE | ER | ERR$ | EXIT | GETKEY | GRAPHIC | GSHAPE | HEADER | HELP | HEX$ | INSTR | JOY | KEY | LOCATE | LOOP | MONITOR | PAINT | PRINT USING | PUDEF | RCLR | RDOT | RENAME | RENUMBER | RESUME | RGR | RLUM | SCALE | SCNCLR | SCRATCH | SOUND | SSHAPE | TRAP | TROFF | TRON | UNTIL | VOL | WHILE