Как использовать «DEGREE» в приложении iOS

Привет, мне нужно сделать 2D-дугу. Где я вижу проблему здесь

arc.path=[UIBezierPath bezierPathWithArcCenter:CGPointMake(50, 100)
                                                  radius:80.0
                                                  startAngle:DEGREE(65)
                                                  endAngle:DEGREE(90)
                                                  clockwise:NO].CGPath;

Я получаю сообщение об ошибке

Неопределенные символы для архитектуры i386: "_DEGREE", на которые ссылаются:

Я знаю, что я не включил некоторый заголовочный файл, могу ли я узнать, какой из них должен включать?

2
nl ja de

3 ответы

DEGREE is macro, not a method!!!

As you can easily guess by its name. Naming conventions come into play

Вы должны определить, что это может быть:

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

или

#define DEGREE(angle) ((angle)/180.0 * M_PI)
10
добавлено
Я предпочитаю RADIANS_FROM_DEGREES ()
добавлено автор Jonny, источник
@Jonny: хорошо выглядит.
добавлено автор Anoop Vaidya, источник

Это должен быть пользовательский макрос, который вы также можете объявить сами и дать ему свое имя. Попробуйте следующее: поместите его куда угодно в свой заголовок или файл реализации.

#define DEGREE(radians) ((radians) * (180.0/M_PI))
7
добавлено

Надеюсь, это сработает для вас ...

(CGFloat) radians:(CGFloat) degrees
{
    CGFloat angle = degrees * M_PI/180.0;
    return angle;
}

@Matthias Bauch: Спасибо за информацию.

0
добавлено
не нужно переопределять M_PI с чем-то менее точным. M_PI уже определен в math.h.
добавлено автор Matthias Bauch, источник