Ce qui suit est un extrait de code où j'essaie de dessiner un cercle, mais ma valeur x imprime comme une valeur constante. C'est très probablement quelque chose de très très simple. Merci d'avance pour votre aide.Aide cercle de dessin dans l'iPhone
int sides = 100;
int radius = 200;
int centerX = 100;
int centerY = 100;
CGFloat red[4] = {1.0f, 0.0f, 0.0f, 1.0f};
CGContextSetStrokeColor(context, red);
CGContextBeginPath(context);
CGContextMoveToPoint(context, 0, 0);
int i = 0;
for(i = 0; i <= sides; i++)
{
CGFloat pointRatio = i/sides;
CGFloat xSteps = cos(pointRatio * 2 * M_PI);
CGFloat ySteps = sin(pointRatio * 2 * M_PI);
CGFloat pointX = centerX + xSteps * radius;
CGFloat pointY = centerY + ySteps * radius;
NSLog(@"%i", pointX);
CGContextAddLineToPoint(context, pointX, pointY);
}
CGContextStrokePath(context);
Vous pouvez également convertir un côté de la division ou l'autre en un type à virgule flottante; par exemple, 'i/(CGFloat) côtés'. Mais oui, 'CGPathAddEllipseInRect' est la bonne façon de le faire; tracer un hecatogon vous-même est difficile. –
@Peter, y a-t-il une différence entre ces deux façons de diviser? Ou le compilateur leur fait finalement les mêmes instructions? – Vladimir
Le vôtre est une multiplication et une division; le mien est une division seule. Le compilateur pourrait très bien optimiser la multiplication, mais je préférerais ne pas écrire le code en premier lieu. –