Frage

Ich versuche, die Mathematik auf dieser Raphael.js zu verstehen Demo:

http://raphaeljs.com/pie.js

Zur Kasse der Sektor-Methode:

function sector(cx, cy, r, startAngle, endAngle, params) {
    var x1 = cx + r * Math.cos(-startAngle * rad),
        x2 = cx + r * Math.cos(-endAngle * rad),
        y1 = cy + r * Math.sin(-startAngle * rad),
        y2 = cy + r * Math.sin(-endAngle * rad);
    return paper.path(["M", cx, cy, "L", x1, y1, "A", r, r, 0, +(endAngle - startAngle > 180), 0, x2, y2, "z"]).attr(params);
}

Dies ist die eigentliche Demo: http://raphaeljs.com/pie.html

Meine Mathe ein wenig rostig ist und ich versuche, die Sektor-Funktion zu verstehen - angesichts der startangle und endAngle Parameter (jeweils Start- und Endpunkt Werte zwischen 0 und 360 einen Bogen zeichnen), warum hat diese Funktion Arbeit

War es hilfreich?

Lösung

Es hängt alles davon ab, wie Sie startAngle und endAngle behandeln. Es sieht aus wie diese ist sie als ausgehend von horizontal nach rechts Behandlung (das heißt ein Winkel von 0 zeigen nach Osten) und geht clockingwise (so ein Winkel von 45 Grad zeigt Süd-Ost.

In der Regel in der Mathematik betrachten wir Winkel von den Horizontalen nach rechts beginnend, aber steigenden gegen den Uhrzeigersinn drehen ... aber wenn Sie einen Nicht-Mathematiker bitten um einen Winkel zu zeichnen, können sie es gut behandeln von vertikal nach oben (dh Nord) Erhöhung im Uhrzeigersinn. Das sieht aus wie es nimmt eine Mischung :) Es gibt keine wirklich „falsch“ oder „richtige“ Antwort hier -. Es ist alles eine Frage der Definition

Wie Bilder beliebt sind, hier sind die drei Systeme, die ich beschrieben habe, die jeweils die Linie unter der Annahme einer Länge r:

Normale Mathematik: gegen den Uhrzeigersinn von der x-Achse


(Quelle: arachsys.com )

Vorstellung des Mannes auf der Straße einen Winkel (im Uhrzeigersinn von der Y-Achse) zu ziehen

Die Winkel durch diesen Code (im Uhrzeigersinn von der x-Achse) verwenden

Andere Tipps

Just Blick auf, was sin und cos eigentlich mittlere in einem Kreis: alt text

Wenn Sie einen Punkt auf einem Kreis haben, die einen Winkel Alpha bildet, die cos alpha ist der x-Teil des Punktes a sin alpha ist der y-Teil.

Diese Abbildung erklärt, warum wird der Winkel negiert. alt text

Es bedeutet, dass Sie jetzt angeben können im Uhrzeigersinn Winkel, was die meisten Menschen mit analogen Uhren bevorzugen.

Weil beliebiger Punkt auf dem Umfang mit dem Mittelpunkt (cx, cy) und den Radius R hat die folgende Koordinate (es folgt direkt aus COS und geometrischen Definitionen SIN - Verhältnis zwischen den Längen der entsprechenden und Kathete Hypotenuse):

x = cx + R*cos(a)
y = cy + R*sin(a) for  0 <= a < 2π

So Grenzwerte für Winkeleinstellung ein Sie beliebigen Bogen definieren können.

Wenn Sie ein 0 ° als horizontal mit x erhöht und 90 ° vertikal mit y Erhöhung dann als:

cos(0) = 1
sin(0) = 0

cos(90) = 0
sin(90) = 1

Sie können den x-Wert variieren, indem sie es durch den Kosinus und variieren den y-Wert multipliziert wird, indem sie es mit dem Sinus multipliziert wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top