Thỉnh thoảng tôi gặp phải điều này và luôn quên cách làm.
Một trong những điều đó bật lên thường xuyên.
Ngoài ra, công thức để chuyển đổi các góc được biểu thị bằng radian sang độ và trở lại là gì?
Thỉnh thoảng tôi gặp phải điều này và luôn quên cách làm.
Một trong những điều đó bật lên thường xuyên.
Ngoài ra, công thức để chuyển đổi các góc được biểu thị bằng radian sang độ và trở lại là gì?
Câu trả lời:
radians = degrees * (pi/180)
degrees = radians * (180/pi)
Đối với việc thực hiện, câu hỏi chính là bạn muốn chính xác như thế nào về giá trị của pi. Có một số thảo luận liên quan ở đây
Math.PI
hằng số.
một vòng tròn hoàn chỉnh tính bằng radian là 2 * pi. Một vòng tròn hoàn chỉnh tính theo độ là 360. Để chuyển từ độ sang radian, đó là (d / 360) * 2 * pi hoặc d * pi / 180.
x rad theo độ -> x * 180 / pi
x độ theo rad -> x * pi / 180
Tôi đoán nếu bạn muốn tạo một hàm cho điều này [trong PHP]:
function convert($type, $num) {
if ($type == "rads") {
$result = $num*180/pi();
}
if ($type == "degs") {
$result = $num*pi()/180;
}
return $result;
}
Vâng, điều đó có thể được viết tốt hơn.
360 độ là 2 * PI radian
Bạn có thể tìm thấy các công thức chuyển đổi tại: http://en.wikipedia.org/wiki/Radian#Conversion_b between_radians_and_degrees .
360 độ = 2 * pi radian
Điều đó có nghĩa là deg2rad (x) = x * pi / 180 và rad2deg (x) = 180x / pi;
Đối với gấp đôi trong c # điều này có thể hữu ích:
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;
}
Đây là một số mã mở rộng Object với rad(deg)
, deg(rad)
và cũng có hai hàm hữu ích hơn: getAngle(point1,point2)
và getDistance(point1,point2)
trong đó một điểm cần phải có một thuộc tính x
và 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));