ios- 画图

//5.画扇形

-(void)drawArc:(CGContextRef)contextRef
{
    //圆心点---少句代码
   // CGContextMoveToPoint(contextRef, 100, 100);
    /**
     *  画扇形
     *
     *  @param c#>          作用域 description#>
     *  @param x#>          圆心x坐标 description#>
     *  @param y#>          圆心y坐标 description#>
     *  @param radius#>     半径 description#>
     *  @param startAngle#> 开始角度 description#>
     *  @param endAngle#>   结束角度 description#>
     *  @param clockwise#>  方向(默认是顺时针0,1是逆时针) description#>
     *
     *  @return 扇形
     */
//    CGContextAddArc(contextRef, 100, 100, 50, 0, 45*M_PI/180, 10);
//    CGContextAddLineToPoint (contextRef, 100, 100);
//    CGContextFillPath(contextRef);

    CGContextMoveToPoint(contextRef, 150, 150);
    CGContextAddArc(contextRef, 150, 150, 100, 0, 270*M_PI/180, 1);
    CGContextSetFillColorWithColor(contextRef, [UIColor purpleColor].CGColor);
    CGContextFillPath(contextRef);
    
    CGContextMoveToPoint(contextRef, 150, 150);
    CGContextAddArc(contextRef, 150, 150, 100, 0,120*M_PI/180, 0);
    CGContextSetFillColorWithColor(contextRef, [UIColor orangeColor].CGColor);
    CGContextFillPath(contextRef);
    
    CGContextMoveToPoint(contextRef, 150, 150);
    CGContextAddArc(contextRef, 150, 150, 100, 120*M_PI/180, 270*M_PI/180, 0);
    CGContextSetFillColorWithColor(contextRef, [UIColor blueColor].CGColor);
    CGContextFillPath(contextRef);
}




//4.画圆
-(void)drawCircle:(CGContextRef)contextRef{
    //在矩形里面画椭圆(即 矩形内切圆)
    CGContextAddEllipseInRect(contextRef, CGRectMake(50, 50, 100, 100));
    
    CGContextFillPath(contextRef);
}


//3.画矩形
-(void)drawRectWithContext:(CGContextRef)contextRef{
    //矩形框
    CGContextAddRect(contextRef, CGRectMake(100, 100, 100, 100));
    //空心(画线的轨迹)
    CGContextStrokePath(contextRef);
    //实心(显示填充)
    CGContextFillPath(contextRef);
    //同时显示线框和填充
    CGContextDrawPath(contextRef, kCGPathFillStroke);
    //以上三种渲染方式只能使用一种,如果都写了,只执行先写的那一种
}

-(void)drawLine:(CGContextRef)contextRef{
    //起点 路径的设置
    CGContextMoveToPoint(contextRef, 20, 100);
    //终点
    CGContextAddLineToPoint(contextRef, 200, 200);
    //设置宽度
    CGContextSetLineWidth(contextRef, 25);
    //设置颜色
    CGContextSetRGBStrokeColor(contextRef, 1, 0, 1, 1);
    
    CGContextSetStrokeColorWithColor(contextRef, [UIColor blueColor].CGColor);
    //设置线的风格
    CGContextSetLineCap(contextRef, kCGLineCapButt);

    //画虚线
    /**
     *  <#Description#>
     *
     *  @param contextRef 作用域
     *  @param phase#>    起点的左移量
     *  @param lengths#>  规定实心和虚心的长度
     *  @param count#>    实心和虚心的循环次数(count必须等于lengths数组的长度)
     *
     *  @return 虚线
     */
    
    CGFloat lengths[] = {10,10};
    
    CGContextSetLineDash(contextRef, 0, lengths, 2);
    
    //画上来 将图形绘制到View上面(渲染)
    CGContextStrokePath(contextRef);
    
}

-(void)drawTriangle:(CGContextRef)contextRef{
    CGContextMoveToPoint(contextRef, 0, 0);
    
    CGContextAddLineToPoint(contextRef, 100, 100);
    
    //如果连续添加多条线 他会把上一条线的终点作为自己的起点(实现直线)
    CGContextAddLineToPoint(contextRef, 150, 80);
    
    CGContextSetLineWidth(contextRef, 10);
    //折现角的风格样式
    CGContextSetLineJoin(contextRef,kCGLineJoinRound);
    
    
   //CGContextAddLineToPoint(contextRef, 0, 0);
   //连接起点和终点封起来
    CGContextClosePath(contextRef);
    
    CGContextSetStrokeColorWithColor(contextRef, [UIColor redColor].CGColor);
    
    //针对图形的填充方式,选择对应的状态进行设置
    CGContextSetFillColorWithColor(contextRef, [UIColor yellowColor].CGColor);
    
    //绘制空心的图形
    //CGContextStrokePath(contextRef);
    //绘制实心的图形
    CGContextFillPath(contextRef);
}


-(void)drawBike:(CGContextRef)contextRef
{
    //前轮
    CGContextAddEllipseInRect(contextRef, CGRectMake(50, 300, 100, 100));
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    //后轮
    CGContextAddEllipseInRect(contextRef, CGRectMake(250, 300, 100, 100));
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    //链条后轮
    CGContextAddEllipseInRect(contextRef, CGRectMake(290, 340, 20, 20));
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    //链条前轮
    CGContextAddEllipseInRect(contextRef, CGRectMake(200, 330, 40, 40));
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    
   //链条
    //起点 路径的设置
    CGContextMoveToPoint(contextRef, 220, 330);
    //终点
    CGContextAddLineToPoint(contextRef, 300, 340);
    //画上来 将图形绘制到View上面(渲染)
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    //起点 路径的设置
    CGContextMoveToPoint(contextRef, 220, 370);
    //终点
    CGContextAddLineToPoint(contextRef, 300, 360);
    //画上来 将图形绘制到View上面(渲染)
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    
    //车架
    //起点 路径的设置
    CGContextMoveToPoint(contextRef, 100, 350);
    //终点
    CGContextAddLineToPoint(contextRef, 123, 230);
    //画上来 将图形绘制到View上面(渲染)
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    //起点 路径的设置
    CGContextMoveToPoint(contextRef, 220, 330);
    //终点
    //CGContextAddLineToPoint(contextRef, 120, 250);
    CGContextAddLineToPoint(contextRef, 240, 240);
    //画上来 将图形绘制到View上面(渲染)
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    //车梁
    //起点 路径的设置
    CGContextMoveToPoint(contextRef, 120, 250);
    //终点
    //CGContextAddLineToPoint(contextRef, 120, 250);
    CGContextAddLineToPoint(contextRef, 252, 250);
    //画上来 将图形绘制到View上面(渲染)
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    //起点 路径的设置
    CGContextMoveToPoint(contextRef, 250, 250);
    //终点
    //CGContextAddLineToPoint(contextRef, 120, 250);
    CGContextAddLineToPoint(contextRef, 300, 350);
    //画上来 将图形绘制到View上面(渲染)
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    
    //车座
    CGContextMoveToPoint(contextRef, 200, 230);
    
    CGContextAddLineToPoint(contextRef, 250, 242);
    
    //如果连续添加多条线 他会把上一条线的终点作为自己的起点(实现直线)
    CGContextAddLineToPoint(contextRef, 250, 230);
    CGContextSetLineWidth(contextRef, 5);
     CGContextClosePath(contextRef);
    //折现角的风格样式
    CGContextSetLineJoin(contextRef,kCGLineJoinRound);
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    
    //画曲线
    //CGContextMoveToPoint(contextRef, 150, 150);
    CGContextAddArc(contextRef, 100, 350, 70, -0.5, 280*M_PI/180, 1);
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    CGContextAddArc(contextRef, 250, 250, 111, 2.05, 2.5, 0);
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    //车把
    CGContextAddArc(contextRef, 160, 170, 70, 1.7, 2.5, 0);
    CGContextSetLineWidth(contextRef, 5);
     CGContextSetLineCap(contextRef, kCGLineCapRound);
    CGContextStrokePath(contextRef);
    
    //脚蹬下
    CGContextMoveToPoint(contextRef, 220, 350);
    //终点
    CGContextAddLineToPoint(contextRef, 230, 380);
    //画上来 将图形绘制到View上面(渲染)
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    CGContextMoveToPoint(contextRef, 220, 380);
    //终点
    CGContextAddLineToPoint(contextRef, 240, 380);
    //画上来 将图形绘制到View上面(渲染)
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    //脚蹬上
    CGContextMoveToPoint(contextRef, 210, 332);
    //终点
    CGContextAddLineToPoint(contextRef, 200, 310);
    //画上来 将图形绘制到View上面(渲染)
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);
    
    CGContextMoveToPoint(contextRef, 190, 310);
    //终点
    CGContextAddLineToPoint(contextRef, 210, 310);
    //画上来 将图形绘制到View上面(渲染)
    CGContextSetLineWidth(contextRef, 5);
    CGContextStrokePath(contextRef);

}

@end

你可能感兴趣的:(C语言,ios开发,画图,二维画图引擎)