CGContextRef画图

本文深入探讨了iOS开发中的Swift编程语言,包括基础语法、高级特性、实战案例及最佳实践,帮助开发者提升iOS应用开发技能。


有篇更详细的帖子:http://blog.youkuaiyun.com/rhljiayou/article/details/9919713


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


    //画一条线

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

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

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

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

    CGContextStrokePath(context); //开始画线


    

    //绘制贝兹曲线

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

    CGContextSetLineWidth(context, 2.0);

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

    CGContextMoveToPoint(context, 10, 10);

    CGContextAddCurveToPoint(context, 20050100400300400);

    CGContextStrokePath(context);

    

    

    //绘制连续的曲线

    CGContextSetLineWidth(context, 5.0);

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

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

    CGContextAddCurveToPoint(context, 310100300200220220);//画三次点曲线

    CGContextAddCurveToPoint(context, 290140280180240190);//画三次点曲线

    

    CGContextStrokePath(context);//开始画线


    

    //绘制虚线

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

    float dashArray1[] = {32};

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

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

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

    CGContextStrokePath(context);//开始画线

    

    //绘制虚曲线

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

    float dashArray2[] = {3210};

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

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

    CGContextAddCurveToPoint(context, 20050100400300400);

    CGContextStrokePath(context);//开始画线



    

    //绘制连续的曲线

    CGContextSetLineWidth(context, 5.0);

    float dashArray3[] = {3210205};

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

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

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

    CGContextAddCurveToPoint(context, 5020080300100220);//画三次点曲线

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

    CGContextAddCurveToPoint(context, 2404001050300300);//画三次点曲线

    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, 180200500180*(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(8080160100);

    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);

感谢博主的分享:http://blog.sina.com.cn/s/blog_9693f61a0101deko.html

"Mstar Bin Tool"是一款专门针对Mstar系列芯片开发的固件处理软件,主要用于智能电视及相关电子设备的系统维护与深度定制。该工具包特别标注了"LETV USB SCRIPT"模块,表明其对乐视品牌设备具有兼容性,能够通过USB通信协议执行固件读写操作。作为一款专业的固件编辑器,它允许技术人员对Mstar芯片的底层二进制文件进行解析、修改与重构,从而实现系统功能的调整、性能优化或故障修复。 工具包中的核心组件包括固件编译环境、设备通信脚本、操作界面及技术文档等。其中"letv_usb_script"是一套针对乐视设备的自动化操作程序,可指导用户完成固件烧录全过程。而"mstar_bin"模块则专门处理芯片的二进制数据文件,支持固件版本的升级、降级或个性化定制。工具采用7-Zip压缩格式封装,用户需先使用解压软件提取文件内容。 操作前需确认目标设备采用Mstar芯片架构并具备完好的USB接口。建议预先备份设备原始固件作为恢复保障。通过编辑器修改固件参数时,可调整系统配置、增删功能模块或修复已知缺陷。执行刷机操作时需严格遵循脚本指示的步骤顺序,保持设备供电稳定,避免中断导致硬件损坏。该工具适用于具备嵌入式系统知识的开发人员或高级用户,在进行设备定制化开发、系统调试或维护修复时使用。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值