ccontext:Arc(xc, yc, radius, angle1, angle2)
radius hinzu.
Der Bogen ist bei (xc, yc) zentriert, beginnt bei angle1 und verläuft in
Richtung zunehmender Winkel, um bei angle2 zu enden. Wenn angle2
kleiner als angle1 ist, wird er schrittweise um 2*#PI erhöht, bis er größer
als Winkel1 ist.
Wenn ein aktueller Punkt vorhanden ist, wird dem Pfad ein erstes Liniensegment
hinzugefügt, um den aktuellen Punkt mit dem Anfang des Bogens zu verbinden.
Wenn diese Anfangslinie unerwünscht ist, kann sie vermieden werden, indem
ccontext:NewSubPath() vor dem Aufruf von ccontext:Arc()
aufgerufen wird.
Winkel werden im Bogenmaß gemessen. Ein Winkel von 0,0 liegt in Richtung der positiven X-Achse (im Benutzerbereich). Ein Winkel von #PI/2,0 Bogenmaß (90 Grad) liegt in Richtung der positiven Y-Achse (im Benutzerbereich). Die Winkel nehmen in Richtung von der positiven X-Achse zur positiven Y-Achse zu. Bei der Standardtransformationsmatrix nehmen die Winkel also im Uhrzeigersinn zu.
Um von Grad in Bogenmaß umzurechnen, verwenden Sie Grad * #PI / 180.
Diese Funktion gibt den Bogen in Richtung zunehmender Winkel an. Sehen Sie sich ccontext:ArcNegative() an, um den Bogen in Richtung abnehmender Winkel zu erhalten.
Der Bogen ist im Benutzerbereich kreisförmig. Um einen elliptischen Bogen zu
erhalten, können Sie die aktuelle Transformationsmatrix um unterschiedliche
Beträge in X- und Y-Richtung skalieren. Zum Beispiel, um eine Ellipse in das
durch x, y, width, height gegebene Feld zu zeichnen:
ctx:Save() ctx:Translate(x + width / 2, y + height / 2) ctx:Scale(width / 2, height / 2) ctx:Arc(0, 0, 1, 0, 2 * #PI) ctx:Restore() |