美文网首页
贝塞尔曲线简单使用-绘制八卦

贝塞尔曲线简单使用-绘制八卦

作者: 顾泠轩 | 来源:发表于2017-07-07 11:49 被阅读50次
    效果图

    最近学习画图,这个算是笔记了。基本就是绘制圆弧。

    -(void)drawRect:(CGRect)rect

    {

    CGPoint center = self.center;

    /*

    贝塞尔曲线画圆

    参数一:center        圆心

    参数二:radius        半径

    参数三:startAngle    圆的起点(整圆是0到2*M_PI,圆的起点在最右侧,即0和2*M_PI都是最右侧的点)

    参数四:endAngle      圆的终点(起点为0,终点为M_PI,说明是画半圆)

    参数五:clockwise    是否顺时钟画圆

    */

    //画下半部分的大圆

    UIBezierPath *blackBezier = [UIBezierPath bezierPathWithArcCenter:self.center radius:100 startAngle:0 endAngle:M_PI clockwise:YES];

    //顺着大圆的终点,画下半部分的半个小圆

    [blackBezier addArcWithCenter:CGPointMake(center.x-50, center.y) radius:50 startAngle:M_PI endAngle:0 clockwise:NO];

    //顺着小圆的终点,继续画上半部分的半个小圆,刚好与大圆的起点重合

    [blackBezier addArcWithCenter:CGPointMake(center.x+50, center.y) radius:50 startAngle:M_PI endAngle:2*M_PI clockwise:YES];

    //将画笔移动到小黑圆的起点。(如果不移动画笔,直接画圆,图形将自动添加一条从当前点(画笔停留的点)到小黑圆起点的直线)

    //可以尝试注释掉这一句,查看效果

    [blackBezier moveToPoint:CGPointMake(center.x-30, center.y)];

    //画黑色的小圆

    [blackBezier addArcWithCenter:CGPointMake(center.x-50, center.y) radius:20 startAngle:0 endAngle:2*M_PI clockwise:YES];

    //设置线条宽度

    blackBezier.lineWidth = 3;

    //设置颜色

    [[UIColor blackColor] set];

    //对bezier进行填充

    [blackBezier fill];

    //对上面设置的路径进行绘制

    [blackBezier stroke];

    //重新创建一个bezier曲线,blackBezier的样式是填充色和线条颜色都为black

    //新建的whiteBezier没有填充色,线条色为黑色,与上面样式不同,所以需要重新创建bezier曲线

    UIBezierPath *wihteBezier = [UIBezierPath bezierPathWithArcCenter:center radius:100 startAngle:0 endAngle:2*M_PI clockwise:NO];

    wihteBezier.lineWidth = 3;

    [wihteBezier stroke];

    //创建一个填充色为白色的bezier曲线,进行绘制

    UIBezierPath *whiteBezier = [UIBezierPath bezierPathWithArcCenter:CGPointMake(center.x+50, center.y) radius:20 startAngle:0 endAngle:2*M_PI clockwise:YES];

    whiteBezier.lineWidth = 3;

    [[UIColor whiteColor] set];

    [whiteBezier fill];

    }

    不移动画笔,会添加直线的效果

    相关文章

      网友评论

          本文标题:贝塞尔曲线简单使用-绘制八卦

          本文链接:https://www.haomeiwen.com/subject/lxplhxtx.html