iOS CGContextRef 画图小结

CGContextRef context = UIGraphicsGetCurrentContext(); //设置上下文

 

    //画一条线

    CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);//线条颜色

    CGContextSetLineWidth(context, 5.0);//线条宽度

    CGContextMoveToPoint(context, 20, 20); //开始画线, x,y 为开始点的坐标

    CGContextAddLineToPoint(context, 300, 20);//画直线, x,y 为线条结束点的坐标

    CGContextStrokePath(context); //开始画线

 

    

    //绘制贝兹曲线

    //贝兹曲线是通过移动一个起始点,然后通过两个控制点,还有一个中止点,调用CGContextAddCurveToPoint() 函数绘制

    CGContextSetLineWidth(context, 2.0);

    CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);

    CGContextMoveToPoint(context, 10, 10);

    CGContextAddCurveToPoint(context, 200, 50, 100, 400, 300, 400);

    CGContextStrokePath(context);

    

    

    //绘制连续的曲线

    CGContextSetLineWidth(context, 5.0);

    CGContextSetStrokeColorWithColor(context, [UIColor greenColor].CGColor);

    CGContextMoveToPoint(context, 230, 150);//开始画线, x,y 为开始点的坐标

    CGContextAddCurveToPoint(context, 310, 100, 300, 200, 220, 220);//画三次点曲线

    CGContextAddCurveToPoint(context, 290, 140, 280, 180, 240, 190);//画三次点曲线

    

    CGContextStrokePath(context);//开始画线

 

    

    //绘制虚线

    CGContextSetRGBStrokeColor(context, 0.1, 0.2, 0.3, 1);//线条颜色

    float dashArray1[] = {3, 2};

    CGContextSetLineDash(context, 0, dashArray1, 2);//画虚线,可参考http://blog.csdn.net/zhangao0086/article/details/7234859

    CGContextMoveToPoint(context, 5, 70);//开始画线, x,y 为开始点的坐标

    CGContextAddLineToPoint(context, 310, 70);//画直线, x,y 为线条结束点的坐标

    CGContextStrokePath(context);//开始画线

    

    //绘制虚曲线

    CGContextSetRGBStrokeColor(context, 0.3, 0.2, 0.1, 1);//线条颜色

    float dashArray2[] = {3, 2, 10};

    CGContextSetLineDash(context, 0, dashArray2, 3);//画虚线

    CGContextMoveToPoint(context, 5, 90);//开始画线, x,y 为开始点的坐标

    CGContextAddCurveToPoint(context, 200, 50, 100, 400, 300, 400);

    CGContextStrokePath(context);//开始画线

 

 

    

    //绘制连续的曲线

    CGContextSetLineWidth(context, 5.0);

    float dashArray3[] = {3, 2, 10, 20, 5};

    CGContextSetLineDash(context, 0, dashArray3, 5);//画虚线

    CGContextSetStrokeColorWithColor(context, [UIColor greenColor].CGColor);

    CGContextMoveToPoint(context, 5, 400);//开始画线, x,y 为开始点的坐标

    CGContextAddCurveToPoint(context, 50, 200, 80, 300, 100, 220);//画三次点曲线

    CGContextAddQuadCurveToPoint(context, 150, 100, 200, 200);//画二次点曲线

    CGContextAddCurveToPoint(context, 240, 400, 10, 50, 300, 300);//画三次点曲线

    CGContextStrokePath(context);//开始画线

 

    

    

    //画一个方形图形 没有边框

    CGContextSetRGBFillColor(context, 0, 0.25, 0, 0.5); //方框的填充色

    CGContextFillRect(context, CGRectMake(5, 150, 100, 100)); //画一个方框

    

    //画弧线

    CGContextSetRGBStrokeColor(context, 0.3, 0.4, 0.5, 1);//线条颜色

    CGContextAddArc(context, 180, 200, 50, 0, 180*(M_PI/180), 0);

   

    CGContextStrokePath(context);//开始画线

 

 

 

    //画方形边框

    CGContextRef context5 = UIGraphicsGetCurrentContext(); //设置上下文

    CGContextSetLineWidth(context5, 3.0);

    CGContextSetRGBStrokeColor(context5, 0.8, 0.1, 0.8, 1);

    CGContextStrokeRect(context5, CGRectMake(5, 5, 300, 400));//画方形边框, 参数2:方形的坐标。

 

 

    //画椭圆

    CGRect aRect= CGRectMake(80, 80, 160, 100);

    CGContextSetRGBStrokeColor(context, 0.6, 0.9, 0, 1.0);

    CGContextSetLineWidth(context, 3.0);

    CGContextAddEllipseInRect(context, aRect); //椭圆, 参数2:椭圆的坐标。

    CGContextDrawPath(context, kCGPathStroke);

 

    //画实心圆

    CGContextFillEllipseInRect(context, CGRectMake(95, 195, 200.0, 100));//画实心圆,参数2:圆坐标。可以是椭圆

 

    //画一个菱形

    CGContextSetLineWidth(context, 2.0);

    CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);

    CGContextMoveToPoint(context, 100, 100);

    CGContextAddLineToPoint(context, 150, 150);

    CGContextAddLineToPoint(context, 100, 200);

    CGContextAddLineToPoint(context, 50, 150);

    CGContextAddLineToPoint(context, 100, 100);

    CGContextStrokePath(context);

 

    //填充了一段路径:

    CGContextMoveToPoint(context, 100, 100);

    CGContextAddLineToPoint(context, 150, 150);

    CGContextAddLineToPoint(context, 100, 200);

    CGContextAddLineToPoint(context, 50, 150);

    CGContextAddLineToPoint(context, 100, 100);

    CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);

    CGContextFillPath(context);

posted @   CodingMann  阅读(232)  评论(0编辑  收藏  举报
编辑推荐:
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
阅读排行:
· JDK 24 发布,新特性解读!
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· Ollama系列05:Ollama API 使用指南
· 为什么AI教师难以实现
点击右上角即可分享
微信分享提示