我偶尔会遇到这种情况,总是忘记如何去做。
经常出现的那些事情之一。
另外,将以弧度表示的角度转换为度数并再次转换回来的公式是什么?
radians = degrees * (pi/180)
degrees = radians * (180/pi)
至于实现,主要问题是您希望 pi 的值有多精确。这里有一些相关的讨论
一个完整的弧度圆是 2*pi。一个完整的圆度数是 360。从度数到弧度,它是 (d/360) * 2*pi 或 d*pi/180。
x 弧度以度为单位 - > x*180/pi
x 度以弧度 -> x*pi/180
我想如果你想为此 [in 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 度 = PI * 弧度
360 度是 2*PI 弧度
您可以在以下位置找到转换公式:http ://en.wikipedia.org/wiki/Radian#Conversion_between_radians_and_degrees 。
360 度 = 2*pi 弧度
这意味着 deg2rad(x) = x*pi/180 和 rad2deg(x) = 180x/pi;
pi 弧度 = 180 度
所以 1 度 = pi/180 弧度
或 1 弧度 = 180/pi 度
对于 c# 中的 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)
还有两个更有用的函数:一个点需要有一个andgetAngle(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));
radians = (degrees/360) * 2 * pi