iOS App开发中用CGContextRef绘制基本图形的基本示例

2020-01-15 15:04:13丽君

画弧线

复制代码
CGContextSetRGBStrokeColor(context, 0, 0, 1, 1);//改变画笔颜色
     
    CGContextMoveToPoint(context, 140, 80);//开始坐标p1
     
    //CGContextAddArcToPoint(CGContextRef c, CGFloat x1, CGFloat y1,CGFloat x2, CGFloat y2, CGFloat radius)
    //x1,y1跟p1形成一条线的坐标p2,x2,y2结束坐标跟p3形成一条线的p3,radius半径,注意, 需要算好半径的长度,
    CGContextAddArcToPoint(context, 148, 68, 156, 80, 10);
     
    CGContextStrokePath(context);//绘画路径   

 

画圆

复制代码
- (void)drawRect:(CGRect)rect
{
    //获得当前画板
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    //颜色
    CGContextSetRGBStrokeColor(ctx, 0.2, 0.2, 0.2, 1.0);
    //画线的宽度
    CGContextSetLineWidth(ctx, 0.25);
    //void CGContextAddArc(CGContextRef c,CGFloat x, CGFloat y,CGFloat radius,CGFloat startAngle,CGFloat endAngle, int clockwise)1弧度=180°/π (≈57.3°) 度=弧度×180°/π 360°=360×π/180 =2π 弧度
    // x,y为圆点坐标,radius半径,startAngle为开始的弧度,endAngle为 结束的弧度,clockwise 0为顺时针,1为逆时针。
    CGContextAddArc(ctx, 100, 20, 20, 0, 2*M_PI, 0); //添加一个圆
    CGContextDrawPath(ctx, kCGPathStroke); //绘制路径
    [super drawRect:rect];
}
这个画圆的公式你还记得吗?你还知道M_PI是什么吗?等于多少吗?赶紧脑补一下吧!

 


画大圆并填充颜色

复制代码
UIColor *aColor = [UIColor colorWithRed:1 green:0.0 blue:0 alpha:1];
     
    CGContextSetFillColorWithColor(context, aColor.CGColor);//填充颜色
     
    CGContextSetLineWidth(context, 3.0);//线的宽度
     
    CGContextAddArc(context, 250, 40, 40, 0, 2 * M_PI, 0); //添加一个圆
    //kCGPathFill填充非零绕数规则,kCGPathEOFill表示用奇偶规则,kCGPathStroke路径,kCGPathFillStroke路径填充,kCGPathEOFillStroke表示描线,不是填充