javascript - tabla - ¿Cómo puedo obtener pecado, cos y tan para usar grados en lugar de radianes?
pi a grados (5)
Cuando estoy trabajando con matemática en JS, me gustaría que sus funciones trigonométricas usen valores de grados en lugar de radios. ¿Como podría hacerlo?
Creé mi pequeño objeto matemático perezoso para el grado (MathD), espero que ayude:
//helper
/**
* converts degree to radians
* @param degree
* @returns {number}
*/
var toRadians = function (degree) {
return degree * (Math.PI / 180);
};
/**
* Converts radian to degree
* @param radians
* @returns {number}
*/
var toDegree = function (radians) {
return radians * (180 / Math.PI);
}
/**
* Rounds a number mathematical correct to the number of decimals
* @param number
* @param decimals (optional, default: 5)
* @returns {number}
*/
var roundNumber = function(number, decimals) {
decimals = decimals || 5;
return Math.round(number * Math.pow(10, decimals)) / Math.pow(10, decimals);
}
//the object
var MathD = {
sin: function(number){
return roundNumber(Math.sin(toRadians(number)));
},
cos: function(number){
return roundNumber(Math.cos(toRadians(number)));
},
tan: function(number){
return roundNumber(Math.tan(toRadians(number)));
},
asin: function(number){
return roundNumber(toDegree(Math.asin(number)));
},
acos: function(number){
return roundNumber(toDegree(Math.acos(number)));
},
atan: function(number){
return roundNumber(toDegree(Math.atan(number)));
}
};
Cree su propia función de conversión que aplique las matemáticas necesarias e invocalas en su lugar. http://en.wikipedia.org/wiki/Radian#Conversion_between_radians_and_degrees
Me gusta un enfoque funcional más general:
/**
* converts a trig function taking radians to degrees
* @param {function} trigFunc - eg. Math.cos, Math.sin, etc.
* @param {number} angle - in degrees
* @returns {number}
*/
const dTrig = (trigFunc, angle) => trigFunc(angle * Math.PI / 180);
o,
function dTrig(trigFunc, angle) {
return trigFunc(angle * Math.PI / 180);
}
que se puede usar con cualquier función de toma de radianes:
dTrig(Math.sin, 90);
// -> 1
dTrig(Math.tan, 180);
// -> 0
¡Espero que esto ayude!
Multiplique el resultado por 180/Math.PI
para convertir de radianes a grados.
También puedes definir tus propias funciones:
function sinDegrees(angle) {return Math.sin(angle/180*Math.PI);};
y así.
Puede usar una función como esta para hacer la conversión:
function toDegrees (angle) {
return angle * (180 / Math.PI);
}
Tenga en cuenta que funciones como sin
, cos
, etc. no devuelven ángulos , toman ángulos como entrada. Me parece que sería más útil para usted tener una función que convierta una entrada de grado a radianes, como esta:
function toRadians (angle) {
return angle * (Math.PI / 180);
}
que podrías usar para hacer algo como tan(toRadians(45))
.