HTML and CSS Reference
In-Depth Information
ctx.lineTo(50, 215);
ctx.stroke();
ctx.beginPath();
ctx.arc(90, 215, 20, getRadians(0), getRadians(270), false);
ctx.lineTo(90, 215);
ctx.lineTo(110, 215);
ctx.fill();
Das Ergebnis kann sich sehen lassen:
Die Methode arcTo() zeichnet einen kreisförmigen Abschnitt.
Schauen wir uns die Deklaration der Methode zunächst noch-
mals an:
void arcTo(in float x1, in float y1, in float x2, in float y2, in float
radius);
Zum Punkt (x1,y1) zeichnet arcTo() zunächst eine gerade Linie, ausgehend vom
aktuellen Ursprung. (x2,y2) gibt nun den Endpunkt des kreisförmigen Pfadabschnitts
an und radius den zu benutzenden Radius (vom Mittelpunkt, also x1,y1 ). Ein Beispiel
veranschaulicht das:
ctx.beginPath();
ctx.moveTo(100, 100);
ctx.lineTo(160, 100);
ctx.arcTo(180, 100, 180, 120, 20);
ctx.lineTo(180, 180);
ctx.arcTo(180, 200, 120, 200, 20);
ctx.lineTo(120, 200);
ctx.arcTo(80, 200, 80, 180, 20);
ctx.lineTo(80, 120);
ctx.arcTo(80, 100, 100, 100, 20);
ctx.fill();
Die Benutzung der arcTo() -Methode braucht sicherlich etwas Übung. Sie sollten nicht
vergessen, dass die ersten beiden Parameter einen Punkt angeben, zu dem zunächst eine
gerade Linie gezeichnet wird und der später als Mittelpunkt des Kreises fungiert. Die
nächsten beiden Parameter geben den Endpunkt an, also den Punkt, zu dem ein Kreis-
abschnitt gezeichnet werden soll. Der letzte Parameter gibt den Radius des Kreises an.
Die Methoden quadraticCurveTo() und bezierCurveTo() werden meist für organi-
sche Formen verwendet. Sie sind wie folgt deklariert:
void quadraticCurveTo(in float cpx, in float cpy, in float x, in float y);
void bezierCurveTo(in float cp1x, in float cp1y, in float cp2x, in float
cp2y, in float x, in float y);
Der wichtigste Unterschied ist, dass quadraticCurveTo lediglich einen Kontrollpunkt
benötigt, da die Funktion quadratisch und damit symmetrisch ist. bezierCurveTo()
braucht zwei Kontrollpunkte und ist daher flexibler. Folgende Darstellung zeigt je ein
Beispiel.
Search WWH ::




Custom Search