2012-03-14 15 views
69

जब मैं जेएस में गणित के साथ काम कर रहा हूं, तो मैं अपने त्रिगुट कार्यों को रेडियन मानों के बजाय डिग्री मानों का उपयोग करना चाहता हूं। मुझे यह कैसे करना है?रेडियंस के बजाय डिग्री का उपयोग करने के लिए मुझे पाप, कॉस और तन कैसे मिल सकता है?

+16

पाप/कॉस/तन रेडियंस में कोण वापस नहीं करते हैं; वे रेडियंस में कोण लेते हैं। उलटा कार्य 'atan()', 'atan2()', 'acos()', 'asin()' रिटर्न कोण। –

उत्तर

145

आप रूपांतरण करने के लिए इस तरह एक समारोह का उपयोग कर सकते हैं:

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

ध्यान दें कि sin, cos की तरह काम करता है, और इतने पर कोण वापस नहीं करते हैं, वे इनपुट के रूप में कोण ले। मुझे ऐसा लगता है कि यह आप के लिए एक समारोह है कि रेडियंस में एक डिग्री इनपुट बदल देता है, इस तरह के लिए के लिए और अधिक उपयोगी होगा:

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

जो आप tan(toRadians(45)) की तरह कुछ करने के लिए इस्तेमाल कर सकते हैं।

20

रेडियंस से डिग्री में कनवर्ट करने के लिए 180/Math.PI द्वारा परिणाम को गुणा करें।

आप अपने खुद के कार्यों को परिभाषित कर सकते हैं:

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

और इतने पर।

+1

भ्रम से बचने के लिए इसे वास्तव में 'sinDegrees' नाम दिया जाना चाहिए –

+0

सच है। मैंने देखा है कि कुछ साइट्स कॉल इसे छोटा रखने के लिए 'सिंड' है। मैं व्यक्तिगत रूप से इसे 'पाप' में रखता हूं क्योंकि मुझे पता है कि 'पाप' तब डिग्री में होगा और मूली.sin' रेडियंस में होगा, लेकिन यह मेरे अपने सिर पर है। –

+3

-1: पाप() कोण को वापस नहीं करता है। इसका इनपुट तर्क एक कोण है। –

0

अपना स्वयं का रूपांतरण फ़ंक्शन बनाएं जो आवश्यक गणित लागू करता है, और इसके बजाए उनसे आह्वान करता है। http://en.wikipedia.org/wiki/Radian#Conversion_between_radians_and_degrees

+5

है, जबकि यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, [यह बेहतर होगा] (http: // मेटा। stackexchange.com/q/8259) यहां उत्तर के आवश्यक हिस्सों को शामिल करने के लिए, और संदर्भ के लिए लिंक प्रदान करें। –

11

मैं डिग्री (MathD) के लिए अपने खुद के छोटे से आलसी मठ-वस्तु बनाया है, आशा है कि यह मदद करता है:

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

मैं एक अधिक सामान्य कार्यात्मक दृष्टिकोण की तरह:

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

आशा है कि इससे मदद मिलती है!

संबंधित मुद्दे

 संबंधित मुद्दे