Frage

Ich versuche, in ActionScript 3 eine Formel zu schreiben, die mir die Variable „z“ (siehe Bild unten) in Grad gibt, die ich dann in Bogenmaß umwandele.

Ich werde den Wert der Variablen „x“ und „y“ bereits kennen.Wie kann ich mithilfe der Trigonometrie die Länge der Hypotenuse und damit den variablen Winkel von var z berechnen?Eine Lösung in AS3 oder Pseudocode wäre sehr hilfreich.Danke.

triangle

War es hilfreich?

Lösung

Was Sie brauchen, ist dies:

var h:Number = Math.sqrt(x*x + y*y);
var z:Number = Math.atan2(y, x);

Das sollte man den Winkel in Radiant geben, müssen Sie x / y tauschen und möglicherweise hinzufügen oder 90 Grad entfernen, aber es sollte es tun! (Beachten Sie, dass Sie nicht einmal brauchen h bekommen z , wenn Sie verwenden atan2)

Ich benutze Multiplikation statt Math.pow (), nur weil Mathe ziemlich langsam ist, können Sie tun:

var h:Number = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));

Und es sollte genau das gleiche.

Andere Tipps

z ist äquivalent zu 180 - Winkel von yH. Oder:

180 - arctan(x/y) //Degrees
pi - arctan(x/y) //radians

Auch wenn Action der Mathematikbibliotheken es haben, verwenden Sie arctan2, die korrekt sowohl die x- und y und beschäftigt sich mit Zeichen nimmt.

Der Winkel Sie wollen, dass das gleiche wie der Winkel zu den einem wetween y und h entgegengesetzt ist.

Nennen wir a der Winkel zwischen y und h, der Winkel Sie wollen, ist eigentlich 180 - a oder PI - a abhängig von Ihrem Gerät (Grad oder Radiant).

Jetzt Geometrie sagt uns, dass:

cos(a) = y/h
sin(a) = x/h
tan(a) = x/y

Mit tan (), erhalten wir:

a = arctan(x/y)

Wie suchen wir 180 - ein, sollten Sie berechnen:

180 -  arctan(x/y)

Was @Patrick sagte, auch die Hypotenuse ist sqrt(x^2 + y^2).

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