Ich stoße gelegentlich darauf und vergesse immer, wie es geht.
Eines dieser Dinge, die immer wieder auftauchen.
Wie lautet auch die Formel, um Winkel im Bogenmaß in Grad und wieder zurück umzuwandeln?
Ich stoße gelegentlich darauf und vergesse immer, wie es geht.
Eines dieser Dinge, die immer wieder auftauchen.
Wie lautet auch die Formel, um Winkel im Bogenmaß in Grad und wieder zurück umzuwandeln?
Antworten:
radians = degrees * (pi/180)
degrees = radians * (180/pi)
Bei der Implementierung ist die Hauptfrage, wie genau Sie den Wert von pi angeben möchten. Es gibt einige ähnliche Diskussion hier
Math.PI
Konstante verwenden.
x Rad in Grad -> x * 180 / pi
x Grad in Rad -> x * pi / 180
Ich denke, wenn Sie eine Funktion dafür [in PHP] machen wollten:
function convert($type, $num) {
if ($type == "rads") {
$result = $num*180/pi();
}
if ($type == "degs") {
$result = $num*pi()/180;
}
return $result;
}
Ja, das könnte wahrscheinlich besser geschrieben werden.
360 Grad ist 2 * PI Bogenmaß
Sie finden die Konvertierungsformeln unter: http://en.wikipedia.org/wiki/Radian#Conversion_between_radians_and_degrees .
360 Grad = 2 * pi Bogenmaß
Das bedeutet deg2rad (x) = x * pi / 180 und rad2deg (x) = 180x / pi;
Für Double in C # kann dies hilfreich sein:
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;
}
Hier ist ein Code, der Object erweitert rad(deg)
, deg(rad)
sowie zwei weitere nützliche Funktionen: getAngle(point1,point2)
und getDistance(point1,point2)
wo ein Punkt eine x
und y
-Eigenschaft haben muss.
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));