2013-02-28 5 views
0

Я нарисовал два круга. Они нарисованы, но есть линия, которая их соединяет. Как его удалить? Вот мой код:Нежелательная линия между двумя кругами - кварц

//Background styling 
CGContextSetRGBFillColor(context, 202.0/225.0, 255.0/225.0, 112.0/225.0, 1); 

//Background setup 
background = CGRectMake(1, 1, 1024, 786);    
CGContextAddRect(context, background); 
CGContextDrawPath(context, kCGPathFill); 

//Styling 
CGContextSetLineWidth(context, 2.0); 
CGContextSetRGBStrokeColor(context, 0.0/225.0, 0.0/225.0, 225.0/225.0, 1); 
CGContextSetRGBFillColor(context, 0.0/225.0, 0.0/255.0, 225.0/225.0, 1); 

//first tower setup 
CGContextAddArc(context, 200, 150, 10, 0, 2*3.14159265359, YES); 

//second tower setup 
CGContextAddArc(context, 800, 150, 10, 0, 2*3.14159265359, YES); 

//Draw towers 
CGContextDrawPath(context, kCGPathFillStroke); 

ответ

2

Вы должны добавить CGContextMoveToPoint(), если вы хотите, чтобы начать новую, не связанную линию в пределах одного пути.

EDIT: Как было отмечено в документации для CGContextAddArc:

Если текущий путь уже содержит подпуть, Кварц добавляет линию, соединяющую текущую точку к начальной точке дуги. Если текущий путь пуст, Quartz создает новый новый подпуть с начальной точкой, установленной на начальную точку дуги.

+0

Где я должен добавить его? –

+0

В том смысле, что вы хотите переместить перо. В вашем случае между двумя вызовами «AddArc». –

0

Ссылка на API CGContextAddArc(): Если текущий путь уже содержит подпуть, Quartz добавляет строку, соединяющую текущую точку с начальной точкой дуги. Так, добавить «шаг» перед вторым CGContextAddArc():

CGContextMoveToPoint(context, 800+10, 150); 
Смежные вопросы