Pregunta

Estoy tratando de escribir una fórmula en ActionScript 3 que me va a dar var "z" (por favor vea la imagen de abajo) en grados, lo que voy, a continuación, convertir a radianes.

Yo ya sabrán el valor de vars "x" y "y".El uso de la trigonometría, ¿cómo puedo calcular la longitud de la hipotenusa y por lo tanto la variable ángulo de var z?Una solución, ya sea en AS3 o psuedocode sería muy útil.Gracias.

triangle

¿Fue útil?

Solución

Lo que necesitas es este:

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

Que debe darle el ángulo en radianes, usted puede ser que necesite para intercambiar x/y y, posiblemente, añadir o quitar de 90 grados, pero se debe hacer el truco!(Tenga en cuenta que usted incluso no necesita h para obtener z cuando usted está utilizando atan2)

Yo uso la multiplicación en lugar de Matemáticas.pow() sólo porque la Matemática es bastante lento, que puede hacer:

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

Y debe ser exactamente el mismo.

Otros consejos

z es equivalente a 180 ángulo de albergue.O:

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

También, si el código actionscript de matemáticas de las bibliotecas, utilice arctan2, que requiere tanto de la x y la y, y ofertas de hoteles con las señales correctamente.

El ángulo que quieres es el mismo que el ángulo opuesto al wetween y y h.

Vamos a llamar a a el ángulo entre y y h, el ángulo que desea en realidad es 180 - a o PI - a dependiendo de su unidad (grados o radianes).

Ahora geometría nos dice que:

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

El uso de tan(), obtenemos:

a = arctan(x/y)

Como estamos buscando 180 - a, usted debe calcular:

180 -  arctan(x/y)

Lo que @Patrick dijo, también la hipotenusa es sqrt(x^2 + y^2).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top