Convertir radianes a grados

publicado por: Anonymous

Estoy realizando un cálculo para obtener un valor en grados, pero me he topado con que el resultado de una operación en JavaScript, donde intervengan los tipos de operaciones trigonométricas, arroja dichos valores en radianes.

Formula

23.45 * sin(360 * ((284 + dn)/365))

Entonces realizo en JavaScript de la siguiente manera:

_x000D_

_x000D_

var miVariable = 23.45 * Math.sin(360 * ((284 + 196)/365));
console.log(miVariable);

_x000D_

_x000D_

_x000D_

El valor arrojado es 19.15, claro, redondeando el valor final.

El problema, es que JavaScript da el resultado en radianes, y lo quiero en grados. Busqué, y la solución que dan es, multiplicar el resultado en radianes de la siguiente manera:

miVariable * (180/Math.PI);

… pero el valor arrojado es 1097.2141776755263

De igual forma, si multiplico el resultado pero solo del cálculo de la operación del seno, entra dentro de un rango posible de ángulo entre -360 y 360.

_x000D_

_x000D_

var valorSeno = Math.sin(360 * ((284 + 196)/365));
var valorFinal = valorSeno * (180/Math.PI);
console.log(valorFinal);

_x000D_

_x000D_

_x000D_

De igual forma, aquí aún no multiplico por el valor 23.45, ya que arroja, el mismo valor al final.

El valor final que necesito es 21.51

solución

Hay que jugar un poco con las convenciones para mantener todas las equivalencias.

Bien sabes que la función de Math.sin(x) recibe sus parámetros como radianes. El resultado sigue en radianes.

De ahí aplica el álgebra de la escuela para resolver el seno y dar una última conversión para obtener los grados.

_x000D_

_x000D_

Math.grados = function(radianes) {_x000D_
  return radianes * 180 / Math.PI;_x000D_
};_x000D_
_x000D_
Math.radianes = function(grados) {_x000D_
  return grados * Math.PI / 180;_x000D_
};_x000D_
_x000D_
let antesSeno = Math.radianes(360 * ((284 + 196)/365)),_x000D_
  miVariable = 23.45 * Math.sin(antesSeno),_x000D_
  miGrados = Math.grados(miVariable);_x000D_
console.log(antesSeno);_x000D_
console.log(miVariable);_x000D_
console.log(miGrados);

_x000D_

_x000D_

_x000D_

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *