我需要将弧度转换为度数。我已经通过 x*180/Pi 进行了尝试,问题是我的输出角度以度分秒为单位,因此转换中的小错误会导致大问题。
For example: (aCos(0)*180)/Pi = 90.00000250
在以 10 为底的宇宙中,它应该是 90.00000000
我需要将弧度转换为度数。我已经通过 x*180/Pi 进行了尝试,问题是我的输出角度以度分秒为单位,因此转换中的小错误会导致大问题。
For example: (aCos(0)*180)/Pi = 90.00000250
在以 10 为底的宇宙中,它应该是 90.00000000
在代码中使用以下宏将弧度转换为度数:
#define RADIANS_TO_DEGREES(radians) ((radians) * (180.0 / M_PI))
例子:
NSLog(@"Output radians as degrees: %f", RADIANS_TO_DEGREES(0.785398));
通过这个链接。
正确的解决方案是 importGLKit
然后您可以使用 GLKit 已经实现的以下 2 个功能:
GLKMathDegreesToRadians()
GLKMathRadiansToDegrees()
函数GLKit
返回的值很好!
目标-C:
import <GLKit.h>
float angleInRadian = GLKMathDegreesToRadians(360.0);
// Return 6.2831854820
float angleInDegrees = GLKMathRadiansToDegrees(angleInRadian);
// Return 360.0000000000
斯威夫特:
import GLKit
let angleInRadian: Float = GLKMathDegreesToRadians(360.0)
// Return 6.2831855
let angleInDegrees: Float = GLKMathRadiansToDegrees(angleInRadian)
// Return 360.0
问题是我应该使用 acosf(float) 而应该使用 ace(double)
这对我有用。您也可以#import <GLKit/GLKit.h>
and 使用GLKMathDegreesToRadians()
or GLKMathRadiansToDegrees()
。
-(CGFloat) degreesToRadians:(CGFloat) degrees {
return degrees == 0.0 ? 0: degrees * M_PI / 180;
}
-(CGFloat) radiansToDegrees:(CGFloat) radians {
return radians == 0.0 ? 0: radians * 180 / M_PI;
}