使用Core Graphics创建一个半圆

时间:2015-07-13 16:27:28

标签: ios core-graphics

我想在视图的底部创建一个完美的半圆,现在我在矩形的顶部只得到一个圆弧(参见附图)。这是我正在使用的代码,其中circularRect是origin =(x = 128,y = 514),size =(width = 64,height = 54)

    CGFloat arcHeight = 60.0;
    CGRect arcRect = CGRectMake(circularRect.origin.x, circularRect.origin.y + circularRect.size.height - arcHeight, circularRect.size.width, arcHeight);

    CGFloat arcRadius = 60;
    CGPoint arcCenter = CGPointMake(arcRect.origin.x + arcRect.size.width/2, arcRect.origin.y + arcRadius);

    CGFloat angle = acos(arcRect.size.width / (2*arcRadius));
    CGFloat startAngle = 270 * M_PI/180 + angle;
    CGFloat endAngle = 90 * M_PI/180 - angle;

    CGContextAddArc(context, arcCenter.x, arcCenter.y, arcHeight, startAngle, endAngle, 1);
    CGContextClip(context);
    CGContextClearRect(context, arcRect);
    CGContextSetFillColorWithColor(context, [UIColor greenColor].CGColor);
    CGContextFillRect( context, arcRect);

enter image description here

我做错了什么?谢谢!

1 个答案:

答案 0 :(得分:0)

您为弧功能提供的半径太大。您的矩形宽度为64,您只能在其中放入半径为32或更小的圆。