2016-08-29 2 views
0

Ниже приведен код, который рисует дугу от M_PI/2 до M_PI.CGPathAddArc по часовой стрелке и смещение против часовой стрелки

CGContextRef contet=UIGraphicsGetCurrentContext(); 

CGMutablePathRef path = CGPathCreateMutable(); 
CGPathAddArc(path, NULL, CGRectGetMidX(rect), CGRectGetMidY(rect), CGRectGetMidX(rect), M_PI/2.0,M_PI, YES); 

CGContextAddPath(contet, path); 
CGContextSetStrokeColorWithColor(contet, [UIColor redColor].CGColor); 
CGContextStrokePath(content); 

Ниже приведен чертеж вышеуказанного кода.

enter image description here

Я ожидал, что это сделать это в пустой или недостающей части, как его по часовой стрелке. Я сослался на этот ответ Why does giving addArcWithCenter a startAngle of 0 degrees make it start at 90 degrees?, но я не знаю, где я ошибаюсь.

ответ

0

Вы должны просто уделять больше внимания методу, который вы использовали.

CGPathAddArc(path, NULL, CGRectGetMidX(rect), CGRectGetMidY(rect), CGRectGetMidX(rect), M_PI/2.0,M_PI, NO); 

Просто измените последний параметр на НЕТ, вы получите то, что хотите, оно может управлять направлением рисования.

0

Потому что, в Core Graphics, начало координат находится в левом/низ

Подавать по горизонтали изменяется по часовой стрелке, чтобы против часовой стрелки и наоборот

Вам просто нужно изменить clockwise к NO, чтобы получить то, что вы хотите

Смежные вопросы