Ниже приведен фрагмент кода, где я пытаюсь нарисовать круг, но мое значение x печатает как постоянное значение. Скорее всего, это очень просто. Заранее благодарю за любую помощь.Помощь в рисовании круга в 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);
Вы также можете просто преобразовать одну сторону деления или другой в тип с плавающей точкой; например, 'i/(CGFloat) сторон'. Но да, 'CGPathAddEllipseInRect' - правильный способ сделать это; построение самого гекатогона - это трудный путь. –
@Peter, есть ли разница между этими двумя способами разделить? Или компилятор, наконец, делает им те же инструкции? – Vladimir
Ваше умножение и деление; моя - это разделение. Компилятор может очень хорошо оптимизировать умножение, но я бы предпочел не писать код для него в первую очередь. –