Радианы и градусы

Градусы являются условными долями окружности, всего в окружности 360°. С градусами проще работать на верхнем уровне, потому что для пользователя привычнее и понятнее задавать углы в градусах.

Радианы это другая мера углов (естественная) где длина дуги равна радиусу окружности. Радины обычно используются под капотом для вычислений с использованием тригонометрических функций (таких как Math.Sin и т.д.)

Один радиан — это угол, соответствующий дуге, длина которой в точности равна радиусу окружности. Один радиан примерно равен ~57.2958°

Радианы и градусы можно конвертировать друг в друга по следующим формулам

//перевод из градусов в радианы
double radians = degrees * Math.PI / 180.0;

// перевод из радиан в градусы
double degrees = radians * 180.0 / Math.PI;

 

Все тригонометрические функции C# из System.Math (такие как Sin/Cos/Atan2) принимают на вход именно радианы, поэтому не забывайте перевести градусы в радианы перед использование этих функций. 

 

Часто IDE (такие как Visual Studio, выдает подсказку по использованию функций), из которой можно понять что ожидаемый параметр метода должен быть в радианах или в градусах. Ниже мы видим пример IntelliSense подсказки для функции System.Math.Sin, из которой мы можем узнать что входной параметр a, это угол в радианах.

 

В дальнешейм для перевода в радианы / градусы удобно использовать extension класс с функциями ToRadians / ToDegrees

public static class Extensions
{
    public static double ToRadians(this double degrees) => degrees * Math.PI / 180.0;
    public static double ToDegrees(this double radians) => radians * 180.0 / Math.PI;
}

// использование
double angle = 90;
var x = R* Math.Cos( angle.ToRadians() );

Такой подход позволяет сделать код более читаемым.