আমি রেডিয়ানদের পরিবর্তে ডিগ্রি ব্যবহার করতে পাপ, কোস এবং ট্যান পেতে পারি?


105

আমি যখন জেএসে গণিতের সাথে কাজ করছি তখন আমি তার ট্রিগ ফাংশনগুলি রেডিয়ান মানগুলির পরিবর্তে ডিগ্রি মান ব্যবহার করতে চাই। আমি যে কিভাবে করতে হবে?


20
sin / cos / tan রেডিয়ানে কোণ ফেরায় না; তারা রেডিয়ানে কোণ নেয়। বিপরীত ক্রিয়াকলাপ atan(), atan2(), acos(), asin()রিটার্ন কোণ।
জেসন এস

উত্তর:


221

রূপান্তরটি করতে আপনি এই জাতীয় ক্রিয়া ব্যবহার করতে পারেন:

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

ফাংশন পছন্দ লক্ষ্য করুন sin, cos, ইত্যাদি কোণ ফেরত না , তারা ইনপুট হিসাবে কোণ নিতে। আমার কাছে মনে হয়েছে যে এটি এমন একটি ফাংশন থাকা আপনার পক্ষে বেশি কার্যকর হবে যা ডিগ্রি ইনপুটটিকে রেডিয়ানে রূপান্তর করে, এর মতো:

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

যা আপনি যেমন কিছু করতে ব্যবহার করতে পারেন tan(toRadians(45))


28

Math.PI/180সিস্টেম ট্রিগ ফাংশনগুলিকে কল করার আগে ডিগ্রি থেকে রেডিয়ানে রূপান্তর করতে ইনপুটটি গুণান।

আপনি নিজের ফাংশনগুলিও সংজ্ঞায়িত করতে পারেন:

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

ইত্যাদি।


4
sinDegreesবিভ্রান্তি এড়ানোর জন্য
এটির

সত্য। আমি কিছু সাইট কল দেখেছি sindএটি ছোট রাখা। আমি ব্যক্তিগতভাবে এটি sinরেখেছি কারণ আমি জানি যে sinএটি তখন ডিগ্রি এবং Math.sinরেডিয়ানে থাকবে তবে এটি আমার নিজের হাতে।
নিট দ্য ডার্ক আবসোল

6
-1: sin () কোনও কোণ ফেরায় না। এর ইনপুট আর্গুমেন্ট একটি কোণ।
জেসন এস

4
সে ... সে আমার কাছ থেকে দূরে সরে গেছে। আমি জানি। অবশ্যই আমি এটি জানি। আমি না থাকলে ট্রিগ ফাংশন সহ আমি একটি বাজিলিয়ান গেম তৈরি করতাম না ... তবে কোনও কারণে আমি সম্পূর্ণরূপে ভুলে গিয়েছিলাম যে = /
নিট দ্য ডার্ক অ্যাবসোল

আমি ট্রিগের সাথে খুব খারাপ এবং খারাপ ... আমি কি জিজ্ঞাসা করতে পারি কোসডেগ এবং ট্যানডেগের সমীকরণটি কেমন হবে? ধন্যবাদ.
কামা

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.wikedia.org/wiki/Redia# রূপান্তর_ভিত্তিক_আড়িয়ানগণ_আর_ডিগ্রি


6
যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
জেসন সি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.