Pergunta

A biblioteca CoreGraphics da Apple define duas funções para descrever um arco.

  • CGPathAddArc adiciona um arco baseado em um ponto central, raio e par de ângulos.
  • CGPathAddArcToPoint adiciona um arco baseado em um raio e um par de linhas tangentes.

Os detalhes são explicados em a referência da API CGPath.Por que duas funções?Conveniência simples?Um é mais eficiente que o outro?Um é definido em termos do outro?

Foi útil?

Solução

O primeiro fornece uma parte de um círculo (na verdade, uma aproximação de um), enquanto o último expõe o fato de que você está criando um caminho de Bézier.Dependendo do que você está desenhando, um ou outro pode ser mais conveniente.Você realmente poderia considerar ambas as conveniências para CGPathAddCurveToPoint.

Outras dicas

CGContextAddArc faz isso:

addArc

onde a linha vermelha é o que será desenhado, sA é startAngle, eA é o endAngle, r é radius, e x e y são x e y.Se você tiver um ponto anterior, a função se alinhará deste ponto até o início do arco (a menos que você tome cuidado, esta linha não seguirá na mesma direção do arco).

CGContextAddArcToPoint funciona assim:

addArc

Onde P1 é o ponto atual do caminho, x1, x2, y1, y2 correspondem às funções x1, x2, y1, y2 e r é radius.O arco começará na mesma direção que a linha entre o ponto atual e (x1, y1) e termina na direção entre (x1, y1) e (x2, y2).não vai alinhar (x2, y2) Ele irá parar no final do círculo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top