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


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


76
2018-03-14 15:41


मूल


पाप / कोस / तन रेडियंस में कोण वापस नहीं करते हैं; वे रेडियंस में कोण लेते हैं। व्यस्त कार्य atan(), atan2(), acos(), asin() कोण वापस करें। - Jason S


जवाब:


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

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

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

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

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


161
2018-03-14 15:43





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

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

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

और इसी तरह।


22
2018-03-14 15:42



यह वास्तव में नामित किया जाना चाहिए sinDegrees भ्रम की स्थिति से बचने के लिए - BlueRaja - Danny Pflughoeft
सच। मैंने कुछ साइटों को कॉल किया है sind इसे छोटा रखने के लिए। मैं इसे व्यक्तिगत रूप से रखता हूं sin क्योंकि मुझे वह पता है sin फिर डिग्री में होगा और Math.sin रेडियंस में, लेकिन यह मेरे अपने सिर पर है। - Niet the Dark Absol
-1: पाप () एक कोण वापस नहीं करता है। इसका इनपुट तर्क एक कोण है। - Jason S
वह ... वह मुझसे दूर हो गया। मुझे पता है कि। बेशक मुझे पता है कि। अगर मैं नहीं था तो मैंने ट्रिग फ़ंक्शंस के साथ एक बजाना गेम नहीं बनाया होता ... लेकिन किसी कारण से मैं पूरी तरह से भूल गया कि = / - Niet the Dark Absol
+1 अब आप इसे ठीक कर चुके हैं। - Jason S


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

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

13
2017-12-23 13:14





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


0
2018-03-14 15:43



जबकि यह सैद्धांतिक रूप से सवाल का जवाब दे सकता है, यह बेहतर होगा यहां उत्तर के आवश्यक हिस्सों को शामिल करने के लिए, और संदर्भ के लिए लिंक प्रदान करें। - Jason C


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

/**
* 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
2018-02-20 02:30