Иногда я сталкиваюсь с этим и всегда забываю, как это сделать.
Одна из тех вещей, которые всплывают очень часто.
Кроме того, по какой формуле переводятся углы, выраженные в радианах, в градусы и обратно?
Иногда я сталкиваюсь с этим и всегда забываю, как это сделать.
Одна из тех вещей, которые всплывают очень часто.
Кроме того, по какой формуле переводятся углы, выраженные в радианах, в градусы и обратно?
radians = degrees * (pi/180)
degrees = radians * (180/pi)
Что касается реализации, главный вопрос заключается в том, насколько точно вы хотите определить значение числа пи. Здесь есть связанное обсуждение здесь
Math.PI.
- person Bart; 24.02.2014
полный круг в радианах равен 2 * пи. Полный круг в градусах равен 360. Чтобы перейти от градусов к радианам, это (d / 360) * 2 * pi или d * pi / 180.
x рад в градусах -> x * 180 / pi
x градусов в радах -> x * pi / 180
Думаю, если бы вы хотели сделать для этого функцию [на PHP]:
function convert($type, $num) {
if ($type == "rads") {
$result = $num*180/pi();
}
if ($type == "degs") {
$result = $num*pi()/180;
}
return $result;
}
Да, это, наверное, можно было бы написать лучше.
В javascript это можно сделать так
radians = degrees * (Math.PI/180);
degrees = radians * (180/Math.PI);
Для меня это работает достаточно хорошо :)
// deg2rad * degrees = radians
#define deg2rad (3.14159265/180.0)
// rad2deg * radians = degrees
#define rad2deg (180/3.14159265)
180 градусов = пи * радианы
360 градусов - это 2 * PI радиана
Вы можете найти формулы преобразования по адресу: http://en.wikipedia.org/wiki/Radian#Conversion_between_radians_and_degrees.
360 градусов = 2 * пи радиан
Это означает, что deg2rad (x) = x * pi / 180 и rad2deg (x) = 180x / pi;
пи Радианы = 180 градусов
Итак, 1 градус = пи / 180 радиан.
или 1 радиан = 180 / пи градусов
Для double в С # это может быть полезно:
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;
}
Вот код, который расширяет Object с помощью 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));