Ska*_*ful 1 iphone core-graphics
以下是一段代码,我试图绘制一个圆,但我的x值打印为常量值.这很可能非常简单.在此先感谢您的帮助.
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);
Run Code Online (Sandbox Code Playgroud)
CGFloat pointRatio = i/sides;
Run Code Online (Sandbox Code Playgroud)
当你除2个整数时,结果也将是整数 - 在你的情况下为0.您必须确保将执行浮点除法:
CGFloat pointRatio = 1.0f*i/sides;
// Or even better
CGFloat pointRatio = i/(CGFloat)sides;
Run Code Online (Sandbox Code Playgroud)
那么为什么你不想使用内置函数绘制圆圈:
CGPathAddEllipseInRect(path, NULL,
CGRectMake(centerX - radius, centerY - radius, 2*radius, 2*radius));
Run Code Online (Sandbox Code Playgroud)
小智 5
您只需要2行代码就可以绘制一个真正的圆形圆.我的示例代码:
CGContextAddArc(contextRef,centerX,centerY,radius,0,2*3.1415926535898,1);
CGContextDrawPath(contextRef,kCGPathStroke);
Run Code Online (Sandbox Code Playgroud)