Ответ 1
Просто определите макрос как:
#define DEGREES_RADIANS(angle) ((angle) / 180.0 * M_PI)
И измените свой метод следующим образом:
CATransform3D transform = CATransform3DMakeRotation(DEGREES_RADIANS(360), 0, 0, 1);
При разработке круговой диаграммы с использованием основного сюжета я добавил анимацию для данного кода
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"];
Этот код дает следующую ошибку: Semantic Issue:
Implicit declaration of function 'DegreesToRadians' is invalid in C99
Что я могу сделать, чтобы избежать этого?
А также время запуска дает следующую ошибку:
Apple_o Linker id error "_DegreesToRadians", referenced from:
Спасибо и с уважением
Виджаякумар
Разработчик iOS в Rhytha
Просто определите макрос как:
#define DEGREES_RADIANS(angle) ((angle) / 180.0 * M_PI)
И измените свой метод следующим образом:
CATransform3D transform = CATransform3DMakeRotation(DEGREES_RADIANS(360), 0, 0, 1);
#define RADIANS_TO_DEGREES(radians) ((radians) * (180.0 / M_PI))
напишите этот код в верхней части вашего .m файла, где вы хотите конвертировать
сообщите мне, работает ли он или нет.
Для простых углов просто используйте радианы:
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