Czasami napotykam na to i zawsze zapominam, jak to zrobić.
Jedna z tych rzeczy, które pojawiają się tak często.
Jaki jest wzór na zamianę kątów wyrażonych w radianach na stopnie iz powrotem?
Czasami napotykam na to i zawsze zapominam, jak to zrobić.
Jedna z tych rzeczy, które pojawiają się tak często.
Jaki jest wzór na zamianę kątów wyrażonych w radianach na stopnie iz powrotem?
Odpowiedzi:
radians = degrees * (pi/180)
degrees = radians * (180/pi)
Jeśli chodzi o implementację, głównym pytaniem jest to, jak precyzyjnie chcesz określić wartość pi. Jest jakiś pokrewny dyskusja tutaj
Math.PI
stałej.
x radów w stopniach -> x * 180 / pi
x stopni w radach -> x * pi / 180
Myślę, że gdybyś chciał zrobić dla tego funkcję [w PHP]:
function convert($type, $num) {
if ($type == "rads") {
$result = $num*180/pi();
}
if ($type == "degs") {
$result = $num*pi()/180;
}
return $result;
}
Tak, prawdopodobnie można by to lepiej napisać.
To działa wystarczająco dobrze dla mnie :)
// deg2rad * degrees = radians
#define deg2rad (3.14159265/180.0)
// rad2deg * radians = degrees
#define rad2deg (180/3.14159265)
360 stopni to 2 * radianów PI
Formuły konwersji można znaleźć pod adresem : http://en.wikipedia.org/wiki/Radian#Conversion_between_radians_and_degrees .
360 stopni = 2 * pi radianów
To oznacza deg2rad (x) = x * pi / 180 i rad2deg (x) = 180x / pi;
W przypadku podwójnego w c # może to być pomocne:
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;
}
Oto kod, który rozszerza Object o rad(deg)
, deg(rad)
a także dwie inne przydatne funkcje: getAngle(point1,point2)
i getDistance(point1,point2)
gdzie punkt musi mieć właściwość x
i 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));