10

在使用核心图开发饼图时,我为给定代码添加了动画

    CABasicAnimation *rotation = [CABasicAnimation animationWithKeyPath:@"transform"];
   CATransform3D transform = CATransform3DMakeRotation(DegreesToRadians(360), 0, 0, 1);
   rotation.toValue = [NSValue valueWithCATransform3D:transform];  
    rotation.duration = 10.0f;
    [pieChart addAnimation:rotation forKey:@"rotation"];    

此代码给出以下错误语义问题:

Implicit declaration of function 'DegreesToRadians' is invalid in C99

我能做些什么来避免这种情况?

并且运行时也会出现以下错误:

Apple_o  Linker id error  "_DegreesToRadians", referenced from:

谢谢并恭祝安康

维杰亚古玛

Rhytha 的 iOS 开发人员

https://rhytha.com/

4

3 回答 3

22

只需定义一个宏,如:

#define DEGREES_RADIANS(angle) ((angle) / 180.0 * M_PI)

并更改您的方法,例如:

CATransform3D transform = CATransform3DMakeRotation(DEGREES_RADIANS(360), 0, 0, 1);
于 2012-11-22T06:54:10.830 回答
0
#define RADIANS_TO_DEGREES(radians) ((radians) * (180.0 / M_PI))

将此代码写在要转换的 .m 文件顶部

让我知道它是否有效

于 2012-11-22T06:52:29.690 回答
0

对于简单的角度,只需使用弧度:

Transform3D transform = CATransform3DMakeRotation(2 * M_PI, 0, 0, 1);

典型角度的快速列表:

Degrees | Code
--------+---------
360     | 2 * M_PI
180     | M_PI
90      | M_PI_2
45      | M_PI_4
于 2014-06-18T06:39:53.340 回答