当我在 JS 中使用数学时,我希望它的三角函数使用度值而不是弧度值。我要怎么做?
将输入乘以 Math.PI/180,以便在调用系统三角函数之前将度数转换为弧度。
Math.PI/180
你也可以定义你自己的功能:
function sinDegrees(angleDegrees) { return Math.sin(angleDegrees*Math.PI/180); };
and so on.
您可以使用这样的函数进行转换:
function toDegrees (angle) { return angle * (180 / Math.PI); }
注意,像 sin、 cos等 do not return angles函数,它们以角度作为输入。在我看来,如果有一个函数可以将度输入转换为弧度,对你们来说会更有用,像这样:
sin
cos
function toRadians (angle) { return angle * (Math.PI / 180); }
which you could use to do something like tan(toRadians(45)).
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)))