जब मैं जेएस में गणित के साथ काम कर रहा हूं, तो मैं इसके ट्रिगर कार्यों को रेडियन मूल्यों के बजाय डिग्री मूल्यों का उपयोग करना चाहूंगा। मुझे यह कैसे करना है?
जब मैं जेएस में गणित के साथ काम कर रहा हूं, तो मैं इसके ट्रिगर कार्यों को रेडियन मूल्यों के बजाय डिग्री मूल्यों का उपयोग करना चाहूंगा। मुझे यह कैसे करना है?
जवाबों:
आप रूपांतरण करने के लिए इस तरह के एक समारोह का उपयोग कर सकते हैं:
function toDegrees (angle) {
return angle * (180 / Math.PI);
}
कार्यों की तरह ध्यान दें कि sin
, cos
, और इतने पर कोण नहीं लौटते , वे इनपुट के रूप में कोण ले। यह मुझे लगता है कि यह आपके लिए एक फ़ंक्शन के लिए अधिक उपयोगी होगा जो एक डिग्री इनपुट को रेडियन में परिवर्तित करता है, जैसे:
function toRadians (angle) {
return angle * (Math.PI / 180);
}
जिसका उपयोग आप कुछ करने के लिए कर सकते हैं tan(toRadians(45))
।
Math.PI/180
सिस्टम ट्रिगर फ़ंक्शन को कॉल करने से पहले डिग्री से रेडियन में परिवर्तित करने के लिए इनपुट को गुणा करें ।
आप अपने स्वयं के कार्यों को भी परिभाषित कर सकते हैं:
function sinDegrees(angleDegrees) {
return Math.sin(angleDegrees*Math.PI/180);
};
और इसी तरह।
sinDegrees
भ्रम से बचने के लिए वास्तव में नामित किया जाना चाहिए
sind
कम रखने के लिए है। मैं व्यक्तिगत रूप से इसे रखता sin
हूं क्योंकि मुझे पता है कि sin
फिर डिग्री और Math.sin
रेडियन में होगा, लेकिन यह मेरे खुद के सिर पर है।
मैंने अपना थोड़ा आलसी मैथ-ऑब्जेक्ट डिग्री (गणित) के लिए बनाया, आशा है कि यह मदद करता है:
//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);
}
जिसका उपयोग किसी भी रेडियन लेने वाले फ़ंक्शन के साथ किया जा सकता है:
dTrig(Math.sin, 90);
// -> 1
dTrig(Math.tan, 180);
// -> 0
उम्मीद है की यह मदद करेगा!
अपना स्वयं का रूपांतरण फ़ंक्शन बनाएँ जो आवश्यक गणित को लागू करता है, और इसके बजाय उन पर आक्रमण करें। http://en.wikipedia.org/wiki/Radian#Conversion_between_radians_and_degrees
atan()
,atan2()
,acos()
,asin()
वापसी कोण।