从弧度转换为度数错误

时间:2013-04-07 04:48:38

标签: objective-c

我需要将弧度转换为度数。我试过这个x * 180 / Pi的问题是我的输出角度是几分钟秒,所以转换中的小错误会导致很大的问题。

For example: (aCos(0)*180)/Pi = 90.00000250 

在基础10宇宙中它应该是90.00000000

4 个答案:

答案 0 :(得分:13)

在代码中使用以下宏将弧度转换为度数:

#define RADIANS_TO_DEGREES(radians) ((radians) * (180.0 / M_PI))

示例:

NSLog(@"Output radians as degrees: %f", RADIANS_TO_DEGREES(0.785398));

通过this link

答案 1 :(得分:2)

正确的解决方案是导入GLKit.h
已经实施了2个功能:
GLKMathDegreesToRadians()
GLKMathRadiansToDegrees()

double angleInRadian = GLKMathDegreesToRadians(360.0);
// Return 6.2831854820
double angleInDegrees = GLKMathRadiansToDegrees(angleInRadian);
// Return 360.0000000000

使用GLKit.h函数返回的值很好!

答案 2 :(得分:0)

问题是当我应该使用aces(双倍)时我正在使用acosf(float)

答案 3 :(得分:0)

这对我有用。您也可以#import <GLKit/GLKit.h> 并使用GLKMathDegreesToRadians()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;
}