zoukankan      html  css  js  c++  java
  • 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);

  • 相关阅读:
    Android中getLocationOnScreen和getLocationInWindow 获取屏幕大小
    Android Scroller类的详细分析
    This tag and its children can be replaced by one <TextView/> and a compound drawable
    Activity生命周期之我见
    ViewPager的使用方法和实现过程
    Android提高第九篇之GridView和SQLite实现分页表格
    关闭对话框,OnClose和OnCancel
    iOS: 学习笔记, 透过Boolean看Swift(译自: https://developer.apple.com/swift/blog/ Aug 5, 2014 Boolean)
    回复有关“清理哲学上的垃圾、雾霾......”的评议
    Android图片裁剪之自由裁剪
  • 原文地址:https://www.cnblogs.com/CodingMann/p/5000845.html
Copyright © 2011-2022 走看看