我们怎样才能将圈子进展画成"四分之三" - 3/4?

时间:2016-11-16 21:03:40

标签: ios objective-c calayer uibezierpath cashapelayer

目前正在制作圆形图表,绘制整圆没有问题。我还需要绘制一个3/4圈,是否有任何指定数学来定义3/4圈路径。我尝试通过完整的圆减少错过的位置值,但无法获得准确的结果。任何人都可以帮忙吗?如果有需要我

UIBezierPath *circlePath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(self.frame.size.width/2.0f, self.frame.size.height/2.0f)
                                                              radius:(self.frame.size.height * 0.5) - ([_lineWidth floatValue]/2.0f)
                                                          startAngle:DEGREES_TO_RADIANS(startAngle)
                                                            endAngle:DEGREES_TO_RADIANS(endAngle)
                                                           clockwise:clockwise];

    circle               = [CAShapeLayer layer];
    circle.path          = circlePath.CGPath;
    circle.lineCap       = kCALineCapRound;
    circle.fillColor     = [UIColor clearColor].CGColor;
    circle.lineWidth     = [_lineWidth floatValue];
    circle.zPosition     = 1; [self.layer addSublayer:circle];
; 

请参考下面的图片,

3/4 Circle

注意:我已经从网上附上了示例图片,但我确定需要相同的结果。

1 个答案:

答案 0 :(得分:2)

您已经拥有了所需的代码。函数bezierPathWithArcCenter:radius:startAngle:endAngle:clockwise:采用起始角度和结束角度。如果传入的起始角度为0,结束角度为3π/ 2,则会得到3/4圈。 (3π/ 2是270度,或整圆的3/4。)

请注意,如果您的目标是将圆圈的动画设置为0到360度,那么您需要使用其他技术。为此您要创建整个圆的路径,将其安装到CAShapeLayer中,然后将图层的strokeEnd属性设置为0到1的动画。