zoukankan      html  css  js  c++  java
  • Quartz2D 之 简单使用

    1. 获取Graphics Context

    CGContextRef  ctx = UIGraphicsGetCurrentContext();

      

    2. 最后的渲染接口

    CGContextStrokePath(ctx);//渲染空心图形,但线条没有空心直说,只有宽度
    CGContextFillPath(ctx);//渲染实心图形,如圆、矩形等。

    3. 基本接口

    3.1. 基本图形接口

    3.1.1.  颜色设置
    //第一种颜色设置
     CGContextSetRGBStrokeColor(ctx, 1.0, 0.7, 0.3, 1.0);
    
    //第二种颜色设置
     CGContextSetRGBFillColor(ctx, 1.0, 0.7, 0.3, 1.0);
    
    //第三种设置颜色的方式:同时设置空心颜色和实心颜色
    [[UIColor grayColor] set]
    
    //第四种颜色设置 实心颜色
    [[UIColor grayColor] setFill]
    
    //第五种颜色设置 空心颜色
    [[UIColor grayColor] setStroke]
    
    //第六种颜色设置
    [[UIColor colorWithRed:1.0 green:0 blue:0 alpha:1.0] set];
    3.1.2.  直线
    // 设置起点
    CGContextMoveToPoint(ctx, 20, 100);
    // 设置终点
    CGContextAddLineToPoint(ctx, 300, 100);
    
    //关闭起点和终点
    CGContextClosePath(ctx);

      直线属性:

    //设置线条的宽度
    CGContextSetLineWidth(ctx, 10);
    
    //设置线条起点和终点的样式为圆角
    CGContextSetLineCap(ctx, kCGLineCapRound);
    
    //设置线条的转角的样式为圆角
    CGContextSetLineJoin(ctx, kCGLineJoinRound);
    3.1.3.  矩形
    CGContextAddRect(ctx, CGRectMake(20, 20, 150, 100));
    3.1.4.  圆
    //
    CGContextAddArc(ctx, 100, 100, 50, 0, 2 * M_PI, 0);
    
    //椭圆
    CGContextAddEllipseInRect(ctx, CGRectMake(50, 100, 50, 50));
    3.1.5.  圆弧

      第一种方式,跟画圆一样,只是弧度大小小于 2*M_PI, 一个M_PI是180度。

    CGContextAddArc(CGContextRef  _Nullable c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise)
    
    //参数分别为:Graphics Context, 圆心X轴,圆心Y轴,半径,起始弧度,结束弧度,顺/逆时针

      空心绘制时需要封口。

    3.1.6.  饼状图

      饼状图由两条线,和一个没有封口的圆弧组成。或者实现起来由一条线,一个圆弧,然后封口组成。注意的是,圆弧的圆心和线的起点是同一个点。

    // 画线
    CGContextMoveToPoint(ctx, 100, 100);
    CGContextAddLineToPoint(ctx, 100, 150);
    
    // 画圆弧
    CGContextAddArc(ctx, 100, 100, 50, M_PI_2, M_PI, 0);
        
    // 关闭路径
    CGContextClosePath(ctx);

       M_PI对应的弧度是180度,这样,就可以根据比例来算初始位置和大小了。

  • 相关阅读:
    sql sever外网映射后链接,端口号用,号区分
    zentao事故,慢sql查询
    阿里云镜像加速器配置
    对产品不同指标维度分组求和
    burp抓包https请求
    mysql获取当天,昨天,本周,本月,上周,上月的起始时间
    查询不同sql,插入同一个sheet
    按分类查找缺陷并输出到EXCEL
    循环导出所有行和列
    查询某字段等于当天的日期sql:select count(*) from zt_bug WHERE date_format(openedDate,'%Y-%m-%d')=date_format(NOW(),'%Y-%m-%d')
  • 原文地址:https://www.cnblogs.com/SimonGao/p/5034924.html
Copyright © 2011-2022 走看看