Какой метод преобразования радиан в градусы?


156

Я иногда сталкиваюсь с этим и всегда забываю, как это сделать.

Одна из тех вещей, которые появляются очень часто.

Кроме того, какова формула для преобразования углов, выраженных в радианах, в градусы и обратно?


4
Я не понимаю, почему люди это голосуют. некоторые люди не склонны математически.
мелкий отпечаток

1
это просто вопрос формулировки. Я перефразировал это как проблему программирования вместо математической задачи, и вуаля, это подходит.
DevelopingChris

3
Название этого вопроса не имеет смысла. "[B] uilt in method" --- встроен в что?
Майкл Дж. Барбер

1
я собираюсь пойти и попросить метод для преобразования Цельсия в Фаренгейт и обратно, я тоже забываю об этом
Alex

7
StackOverflow - это больше, чем форум для вопросов и ответов. Это место ссылки. Первоначально я поставил вопрос здесь в качестве справочного вопроса, потому что он действительно очень распространен. Он принадлежит здесь, поэтому, когда кто-то ответит «Просто Google это», Google направит вас сюда.
Ханс Сьюннессон

Ответы:


273
radians = degrees * (pi/180)

degrees = radians * (180/pi)

Что касается реализации, главный вопрос - насколько точно вы хотите быть о значении числа пи. Существует несколько связанного обсуждения здесь


11
Pi = 4 * ArcTan (1) может быть использован, если у вас нет Pi в вашей системе / калькуляторе или вы просто не хотите вводить его со всеми десятичными знаками
Аксель Кемпер

21
Может быть, это не было доступно в 2008 году, но в настоящее время вы можете просто использовать Math.PIконстанту.
Барт

1
@Hogun Метки единиц - это не то же самое, что алгебраические переменные. Когда вы говорите «Пи радианы = 180 градусов», вы говорите в единицах, что эквивалентно выражению «1 фут = 12 дюймов». Затем вы не берете метки единиц измерения и не рассматриваете их как переменные, что может привести к явно неправильному уравнению «футы = 12 * дюймов».
Дейв Коста

1
Нет необходимости в градусах Паренса = радианы * 180 / Math.PI; радианы = градусы * Math.PI / 180;
Павел

2
@Pawel Хотя вы правы, я осмелюсь сказать, что автор использовал паренсы, чтобы передать концепцию о том, как эта функция концептуально объединяется.
Джексонкр,

10

полный круг в радианах - 2 * пи. Полный круг в градусах равен 360. Чтобы перейти от градусов к радианам, это (d / 360) * 2 * pi или d * pi / 180.


9

х рад в градусах -> х * 180 / пи
х градусов в радиусов -> х * пи / 180

Я думаю, если вы хотите сделать функцию для этого [в PHP]:

function convert($type, $num) {
    if ($type == "rads") {
          $result = $num*180/pi();
        }

    if ($type == "degs") {
          $result = $num*pi()/180;
        }

    return $result;
  }

Да, это могло бы быть написано лучше.


4

В JavaScript вы можете сделать это таким образом

radians = degrees * (Math.PI/180);

degrees = radians * (180/Math.PI);

1

Это работает достаточно хорошо для меня :)

// deg2rad * degrees = radians
#define deg2rad (3.14159265/180.0)
// rad2deg * radians = degrees
#define rad2deg (180/3.14159265)




0

пи радианы = 180 градусов

Итак, 1 градус = пи / 180 радиан

или 1 радиан = 180 / пи градусов


0

Для double в c # это может быть полезно:

        public static double Conv_DegreesToRadians(this double degrees)
        {
            //return degrees * (Math.PI / 180d);
            return degrees * 0.017453292519943295d;
        }
        public static double Conv_RadiansToDegrees(this double radians)
        {
            //return radians * (180d / Math.PI);
            return radians * 57.295779513082323d;
        }

0

Вот код , который расширяет объект с rad(deg), deg(rad)а также два более полезных функций: getAngle(point1,point2)и getDistance(point1,point2)где точка должна иметь xи yсвойство.

Object.prototype.rad = (deg) => Math.PI/180 * deg;
Object.prototype.deg = (rad) => 180/Math.PI * rad;
Object.prototype.getAngle = (point1, point2) => Math.atan2(point1.y - point2.y, point1.x - point2.x);
Object.prototype.getDistance = (point1, point2) => Math.sqrt(Math.pow(point1.x-point2.x, 2) + Math.pow(point1.y-point2.y, 2));

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.