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


101

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


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

जवाबों:


215

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

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

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

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

जिसका उपयोग आप कुछ करने के लिए कर सकते हैं tan(toRadians(45))


27

Math.PI/180सिस्टम ट्रिगर फ़ंक्शन को कॉल करने से पहले डिग्री से रेडियन में परिवर्तित करने के लिए इनपुट को गुणा करें ।

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

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

और इसी तरह।


2
इसे sinDegreesभ्रम से बचने के लिए वास्तव में नामित किया जाना चाहिए
ब्लूराजा - डैनी पफ्लुगुएफ्ट

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

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

1
वो ... वो जो मुझसे दूर हो गया। मुझे पता है। निश्चित रूप से मुझे पता है कि। मैं ट्रिगर कार्यों के साथ एक bazillion खेल नहीं होता अगर मैं नहीं था ... लेकिन किसी कारण के लिए मैं पूरी तरह से भूल गया कि = /
नीट द डार्क एबोल

मैं ट्रिगर के साथ एक noob और बुरा हूँ ... क्या मैं पूछ सकता हूँ कि cosDeg और tanDeg के लिए समीकरण कैसा दिखेगा? धन्यवाद।
काम

14

मैंने अपना थोड़ा आलसी मैथ-ऑब्जेक्ट डिग्री (गणित) के लिए बनाया, आशा है कि यह मदद करता है:

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

4

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

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

उम्मीद है की यह मदद करेगा!


0

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


6
जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो यहां उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
जेसन सी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.