Estoy trabajando con un código de ejemplo que dibuja un arco usando CGPaths. He echado un vistazo y he encontrado documentación, pero parece que no puedo visualizar en mi cabeza lo que sucede en términos de usar MoveToPoint, AddLineToPoint, etc. No puedo 'ver' lo que está haciendo el código, puedo simplemente ver el resultadoCómo dibujar un círculo comenzando en la parte superior
Por ejemplo, el código siguiente dibuja un arco de 360 grados completos a partir de la posición de las 3 en punto. Por mi vida no puedo imaginar cómo hacer que comience desde la posición de las 12 en punto con la rotación de la vista en realidad - 90 grados.
Podría alguien ayudarme a descubrir este código y cómo lo cambiaría para lograr el comienzo desde las 12 en punto, preferiblemente tratando de explicar cómo funciona todo esto. ¿O tal vez apuntarme a un recurso visual en línea?
- (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);
}
tiene sentido gracias. Tenía una idea de que estaba en la línea que describió, pero dudaba de mi comprensión ya que funcionaba como quería. Resulta que no estaba funcionando debido a un problema en otro lado. – dubbeat
@dubbeat - Si quiere aprender un poco más sobre el dibujo de cuarzo, le señalo un par de recursos en mi respuesta [aquí] (http://stackoverflow.com/questions/3463256/what-are-some-great- quartz-2d-drawing-tutorials/3464136 # 3464136). –
Gracias Brad. Un montón de material útil allí – dubbeat