Как нарисовать круг, начинающийся сверху

Я работаю с некоторым примером кода, который рисует дугу с помощью CGPaths . Я осмотрелся и нашел документацию, но я просто не могу представить себе в голове, что происходит с точки зрения использования MoveToPoint, AddLineToPoint и т. Д. Я не могу «видеть», что делает код, я могу просто см. результат.

Например, приведенный ниже код рисует дугу на 360 градусов, начиная с позиции на 3 часа. Ради жизни я могу ' t выяснить, как заставить его начинать с позиции 12 часов с фактическим поворотом обзора на 90 градусов.

Может ли кто-нибудь помочь мне разобраться в этом коде и как я могу изменить его, чтобы достичь начала с 12 часов, желательно попытаться объяснить, как все это работает. Или, может быть, указать мне на визуальный ресурс в Интернете?

- (void)drawPathWithArc:(CGFloat)arc {
    CGMutablePathRef thePath = CGPathCreateMutable();
    CGPathMoveToPoint(thePath, NULL, 100.f, 100.f);
    CGPathAddLineToPoint(thePath, NULL, 200.f, 100.f);
    CGPathAddArc(thePath, NULL, 100.f, 100.f, 100.f, 0.f, (360* M_PI)/180, NO);
    CGPathCloseSubpath(thePath);
    shapeLayer_.path = thePath;
    CGPathRelease(thePath);
}
7
задан Peter Hosey 4 March 2011 в 04:35
поделиться