使用quartyz2D画圆,并将其三等分

来源:互联网 发布:高程测量记录表的算法 编辑:程序博客网 时间:2024/06/06 01:10

有朋友问我这个问题怎么解决,我就花了点时间写了一下。

先说说思路,思路是通过贝兹路径画圆弧,并在圆弧的路径上链接一根线到圆心。

路径颜色渲染模式为Fill填充模式,随后花三个圆弧。

第一个圆弧从0° 开始,结束弧度为360° / 3 * 1

第二个圆弧从第一个圆弧结束位置开始,结束弧度为第一个圆弧的结束弧度加上360° / 3 * 1

第三个圆弧同第二个圆弧。



以下是代码:

在View的drawRect方法里调用此方法

分别传入参数1,2,3

圆弧颜色为随机色

-(void)drawNum:(int)num{        //起点位置    CGFloat startAngle = - M_PI_2+M_PI * 2 / 3 *(num-1);    //设置随机颜色    UIColor *color = [UIColor colorWithRed:((float)arc4random_uniform(256)/255.0) green:((float)arc4random_uniform(256)/255.0) blue:((float)arc4random_uniform(256)/255.0) alpha:1.0];    [color set];            //结束位置             CGFloat endAngle =  M_PI * 2/3 + startAngle;        UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(100, 100) radius:100 startAngle:startAngle endAngle:endAngle clockwise:1];            //画一根到 圆心的线    [path addLineToPoint:CGPointMake(100, 100)];        //渲染    [path fill];}

0 0