How can I get sin, cos, and tan to use degrees instead of radians?

当我在 JS 中使用数学时,我希望它的三角函数使用度值而不是弧度值。我要怎么做?

150161 次浏览

将输入乘以 Math.PI/180,以便在调用系统三角函数之前将度数转换为弧度。

你也可以定义你自己的功能:

function sinDegrees(angleDegrees) {
return Math.sin(angleDegrees*Math.PI/180);
};

and so on.

您可以使用这样的函数进行转换:

function toDegrees (angle) {
return angle * (180 / Math.PI);
}

注意,像 sincosdo not return angles函数,它们以角度作为输入。在我看来,如果有一个函数可以将度输入转换为弧度,对你们来说会更有用,像这样:

function toRadians (angle) {
return angle * (Math.PI / 180);
}

which you could use to do something like tan(toRadians(45)).

创建您自己的应用所需数学的转换函数,然后调用它们

I created my own little lazy Math-Object for degree (MathD), hope it helps:

//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)));
}
};

我喜欢更一般的功能性方法:

/**
* 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);

或者,

function dTrig(trigFunc, angle) {
return trigFunc(angle * Math.PI / 180);
}

which can be used with any radian-taking function:

dTrig(Math.sin, 90);
// -> 1


dTrig(Math.tan, 180);
// -> 0

希望这个能帮上忙!

有一个 在 GitHub 上有一千多个明星的项目提供了从度到弧度和弧度到度的转换函数。

To install:

npm i @stdlib/math

输入:

const rad2deg = require('@stdlib/math/base/special/rad2deg')
const deg2rad require('@stdlib/math/base/special/deg2rad')

使用方法:

console.log(Math.sin(deg2rad(90)))
console.log(rad2deg(Math.asin(1)))