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 に答える