2013-07-23 2 views
2

Здравствуйте, я рисую дугу с некоторым углом начала и углом.Найти две конечные точки дуги

Здесь: CGPathAddArc(path, NULL, p1.x, p1.y, radius, M_PI_4 - M_PI, 3 * M_PI_4 - M_PI, NO);

Предположит, что центр (0,0) и радиус 20.

Так что будет уравнение, чтобы найти два конечные точки?

Пожалуйста, помогите мне. Любой совет будет оценен по достоинству.

+1

Как это отличается от вашего предыдущего вопроса http://stackoverflow.com/questions/17738605/how-to-get-points-of-arc? –

ответ

2

Конечная точка дуги становится новой текущей точкой пути, поэтому вам нужно только удерживать указатель на последней точке перед добавлением дуги для первой точки и после добавления - второй для второй точки ,

CGPathGetCurrentPoint() - это функция, которая возвращает текущую (последнюю) точку на пути или CGPointZero, если путь пуст.

Пример кода:

CGPoint firstPoint = CGPointZero; 
CGPoint secondPoint = CGPointZero; 

// get first point (last one on path just before drawing the arc) 
firstPoint = CGPathGetCurrentPoint(path); 

// add arc to path 
CGPathAddArc(path, NULL, p1.x, p1.y, radius, M_PI_4 - M_PI, 3 * M_PI_4 - M_PI, NO); 

// get second point (end of arc) 
secondPoint = CGPathGetCurrentPoint(path);