TrigonometrĂa triangular(ActionScript 3)
actionscript-3 trigonometry (4)
El ángulo que desea es el mismo que el ángulo opuesto al que se encuentra entre y y h.
Vamos a llamar al ángulo entre y
y h
, el ángulo que desea es en realidad 180 - a
o PI - a
dependiendo de su unidad (grados o radianes).
Ahora la geometría nos dice que:
cos(a) = y/h
sin(a) = x/h
tan(a) = x/y
Usando tan (), obtenemos:
a = arctan(x/y)
Como estamos buscando 180 - a, debe calcular:
180 - arctan(x/y)
Estoy intentando escribir una fórmula en ActionScript 3 que me dará var "z" (vea la imagen a continuación) en grados, que luego convertiré en radianes.
Ya sabré el valor de vars "x" e "y". Usando la trigonometría, ¿cómo puedo calcular la longitud de la hipotenusa y, por lo tanto, el ángulo variable de var z? Una solución en AS3 o psuedocode sería muy útil. Gracias.
Lo que dijo @Patrick, también la hipotenusa es sqrt(x^2 + y^2)
.
z es equivalente a 180 - ángulo de yH. O:
180 - arctan(x/y) //Degrees
pi - arctan(x/y) //radians
Además, si las bibliotecas matemáticas de Actionscript lo tienen, use arctan2, que toma tanto la x como la y trata los signos correctamente.
Lo que necesitas es esto:
var h:Number = Math.sqrt(x*x + y*y);
var z:Number = Math.atan2(y, x);
Eso debería darte el ángulo en radianes, es posible que tengas que cambiar x / y, posiblemente, agregar o eliminar 90 grados, ¡pero debería ser el truco! (Tenga en cuenta que ni siquiera necesita h para obtener z cuando está usando atan2)
Uso la multiplicación en lugar de Math.pow () solo porque las matemáticas son bastante lentas, puedes hacer:
var h:Number = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
Y debería ser exactamente lo mismo.