我偶尔会碰到这种情况,总是忘记怎么做。
这种事经常发生。
还有,如何将用弧度表示的角度转换成角度,然后再转换回来?
180度 = PI * 弧度
以度为单位的 x 射线-> x * 180/pi X 度-> x * pi/180 < br/>
我猜如果你想为这个(在 PHP 中)创建一个函数:
function convert($type, $num) { if ($type == "rads") { $result = $num*180/pi(); } if ($type == "degs") { $result = $num*pi()/180; } return $result; }
是的,这个也许可以写得更好。
radians = degrees * (pi/180) degrees = radians * (180/pi)
至于实现,主要的问题是您希望对 π 的值有多精确。有一些相关的讨论 给你
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;
弧度中的一个完整圆是2 * π。一个完整的圆是360度。从度数到弧度,是(d/360) * 2 * pi,或者 d * pi/180。
Π 弧度 = 180度
所以1度 = π/180弧度
或者1弧度 = 180/π 度
radians = (degrees/360) * 2 * pi
这对我来说已经足够了:)
// deg2rad * degrees = radians #define deg2rad (3.14159265/180.0) // rad2deg * radians = degrees #define rad2deg (180/3.14159265)
在 javascript 中你可以这样做
radians = degrees * (Math.PI/180); degrees = radians * (180/Math.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; }
下面是一些用 rad(deg)、 deg(rad)扩展 Object 的代码,还有两个更有用的函数: getAngle(point1,point2)和 getDistance(point1,point2),其中一个点需要具有 x和 y属性。
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));