CGContextRef使用简要教程

iOS App开发中用CGContextRef绘制基本图形的基本示例 主要介绍了iOS App开发中用CGContextRef绘制基本图形的基本示例,CGContextRef同时可以进行图形颜色的填充以及文字的书写,需要的朋友可以参考下 立即下载


Graphics Context是图形上下文,也可以理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个画框.

CGContextRef功能强大,我们借助它可以画各种图形。开发过程中灵活运用这些技巧,可以帮助我们提供代码水平。

说到画图,我就立马想到:我的数学公式都快忘完了。

高中数学你还记得多少?

我记得我上学的时候,数学一直都很好。以至于在班里都不敢和别人吵吵闹闹。一吵吵闹闹,别人就会来一句:以为你数学好,就可以怎么样怎么样了是吧?说的我好无奈啊。

这么多年过去了,说句实话,高中时学的数学公式什么的,都忘记的差不多了。现在要去做高三的考题,估计比写代码还难。

作为一名程序员,数学好,一定是优势。就拿画图来说吧,如果你还清楚的记得那些公式,那么你就可以很随意地画出一些好看的图形出来。

接下来,我们来看看CGContextRef到底能实现些什么?

写文字

- (void)drawRect:(CGRect)rect
{
    //获得当前画板
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    //颜色
    CGContextSetRGBStrokeColor(ctx, 0.2, 0.2, 0.2, 1.0);
    //画线的宽度
    CGContextSetLineWidth(ctx, 0.25);
    //开始写字
    [@"我是文字" drawInRect:CGRectMake(10, 10, 100, 30) withFont:font];  
    [super drawRect:rect];
}

这段代码就可以很漂亮的写出四个大字:我是文字。很容易理解,每句话都有注释。

画直线

- (void)drawRect:(CGRect)rect
{
    //获得当前画板
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    //颜色
    CGContextSetRGBStrokeColor(ctx, 0.2, 0.2, 0.2, 1.0);
    //画线的宽度
    CGContextSetLineWidth(ctx, 0.25);
    //顶部横线
    CGContextMoveToPoint(ctx, 0, 10);
    CGContextAddLineToPoint(ctx, self.bounds.size.width, 10);
    CGContextStrokePath(ctx);
    [super drawRect:rect];
}

画圆

- (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是什么吗?等于多少吗?赶紧脑补一下吧!

画矩形

- (void)drawRect:(CGRect)rect
{
    //获得当前画板
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    //颜色
    CGContextSetRGBStrokeColor(ctx, 0.2, 0.2, 0.2, 1.0);
    //画线的宽度
    CGContextSetLineWidth(ctx, 0.25);
    CGContextAddRect(ctx, CGRectMake(2, 2, 30, 30));
    CGContextStrokePath(ctx);
    [super drawRect:rect];
}

图形千千万,万变不离其宗。更多画图方法,期待你的探索。

作者李刚是刚刚在线(www.superqq.com)站长,百度百家专栏作者
iOS工程师非著名自媒体,微信公众号iOS开发:iOSDevTip运营者


​
cartographer从入门到精通(一):cartographer介绍 Cartographer的架构图我们可以看到白色框出来的三个区域,分别是Input Sensor Data(数据输入模块)Local SLAM(局部SLAM模块)Global SLAM (background thread)(全局SLAM模块)下面我们分别介绍一下这几个模块。 阅读详情

相关推荐

个人信息保护合规审计人员(中级)能力测试试卷

本文是关于个人信息保护合规审计的考试指南,包含选择题、判断题、简答题和案例分析题。选择题考察《个人信息保护法》的关键条款,如敏感信息处理、跨境传输、委托处理等合规要求。判断题测试对个人信息处理规则的理解,如撤回同意、公开信息处理等。简答题要求阐述审计流程、个人权利、委托处理义务等内容。案例分析题以互联网企业为例,分析违规行为并提出整改建议,涉及数据收集、第三方共享、自动化决策等问题。全文旨在帮助中级审计人员掌握个人信息保护的法律规定和审计实务,提升合规审计能力。

qq_41525079的博客 547

CGContextRef详解

Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个画框. Quartz提供了以下几种类型的Graphics Context: Bitmap Graphics Context PDF Graphics Context Window Graphics Context Layer

yick8799的专栏 2816

【代码审计】RuoYi定时任务漏洞:从SQL注入到RCE的攻防演变

本文深入剖析了RuoYi框架定时任务模块从早期版本无校验到引入黑白名单机制,再到被组合利用实现RCE的完整漏洞演变过程。文章详细分析了SQL注入与定时任务功能结合导致的远程代码执行漏洞,并总结了代码审计与安全开发的核心要点,为开发者提供了重要的安全参考。

yellow的专栏 699

【iOS开发-80】Quartz2D绘图简介:直线/圆形/椭圆/方形以及上下文栈管理CGContextSaveGState/CGContextRestoreGState

Quartz2D绘图简介:直线/圆形/椭圆/方形以及上下文栈管理CGContextSaveGState/CGContextRestoreGState

小小的客栈 大大的江湖 3508

ICM42670-P嵌入式开发实战:从寄存器配置到姿态解算全解析

本文全面解析ICM42670-P高性能6轴MEMS运动传感器的嵌入式开发实战,涵盖寄存器配置、数据采集滤波、低功耗优化及姿态解算算法。通过详细代码示例和应用案例,帮助开发者快速掌握从硬件对接到姿态跟踪系统的完整开发流程,适用于可穿戴设备和智能家居等低功耗应用场景。

gold的博客 1070

Accelstepper 库中的参数计算公式

要完全调试电机的各个参数,例如最大速度,加速度等,就需要了解其计算公式和原理。 以下是代码注释: /// This code uses speed calculations as described in /// "Generate stepper-motor speed profiles in real time" by David Austin/// http://fab.cba.mi...

wenguitao的博客 4456

CGContextRef使用详解

CGContextRef context = UIGraphicsGetCurrentContext(); //设置上下文     //画一条线     CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);//线条颜色     CGContextSetLineWidth(con

TaidyPanda的专栏 833

HFSS 3D Layout仿真PCB操作说明

本文介绍一种特别适合PCB这种叠层结构的仿真软件,HFSS 3D Layout既有操作的简便性,又有同3D软件仿真所有的精确性,仿真速度上又比3D软件快很多。

sinat_15150363的博客 3943

iOS CGContextRef详解与使用

CGContextRef是我们在绘图时候需要用到的一个强大的系统原生类,了解和学习使用CGContextRef会让我们在做某些功能是提供非常大的帮助,也能提升我们的编码水平!阅读此篇文章后,希望能让你对CGContextRef有更多的了解。

qq_36059034的博客 2375

ER图从入门到精通:数据库建模全攻略

本文为数据库建模领域的 ER 图全面指南,系统解析从基础概念到实战应用的核心要点。首先介绍 ER 图的定义、三大组成元素(实体、属性、关系)及三种基础关系类型(一对一、一对多、多对多);其次详解绘制流程,涵盖工具选择(如 Visio、PowerDesigner)、需求分析方法及实体 - 属性 - 关系的分步建模技巧;进一步探讨弱实体、复合属性等高级概念,结合范式理论讲解模型优化策略;针对实体属性混淆、关系类型误判等常见问题提供解决方案;最后通过电商系统、图书馆管理系统等实际案例展示 ER 图设计全流程。

邓邓子的博客 4213

24年电赛H题 | 想要小车走直线,正在调角度环,但不知道怎么把角度偏航角偏差转化成电机速度输出?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1316

iOS CGContextRef使用简要教程

Graphics Context是图形上下文,也可以理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个画框. CGContextRef功能强大,我们借助它可以画各种图形。开发过程中灵活运用这些技巧,可以帮助我们提供代码水平。 说到画图,我就立马想到:我的数学公式都快忘完了。 1.写文字 - (void)drawRect:...

UT1236的博客 197

【现代人形机器人:从物理建模到大模型驱动的控制与学习】第1章 机器人建模回顾

本章建立读者进行后续控制 / 优化 / 学习工作的数学与计算基础。内容分为三大块:刚体运动学:位姿表示、坐标变换、旋转参数与李代数/李群(指数映射、twist)多关节机构的正/逆运动学:DH 与 POE 两种建模、雅可比矩阵推导、数值/解析逆解方法与奇异性问题约束动力学:拉格朗日公式、牛顿—欧拉递归算法、接触/冲击模型、受约束系统的方程(拉格朗日乘子与互补性条件)每一节同时给出与练习题。假设读者已具备线性代数(矩阵、特征分解、SVD)、多变量微积分与基础力学(牛顿第二定律)知识。

u012133341的博客 185

Scanner,UIGraphicsBeginImageContext,CGContextRef,

Scanner请跳转至:http://blog.sina.com.cn/s/blog_70854cfb01013uqc.html UIGraphicsBeginImageContext请跳转至:http://blog.sina.com.cn/s/blog_5fb39f9101017n1v.html CGContextRef请跳转至:http://www.cnblogs.com...

weixin_33751566的博客 65

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

IOS_使用CGContextRef实现线性渐变和圆弧遮罩

本来再次来自本群 【天空air_as3_北京】 仰慕者可以给作者发email:paradiselwh154@gmail.com  顺别介绍我们的QQ群:241465868  源代码在此,请点击下载Demo 原理:使用了遮罩,核心就是: CGImageRef mask = CGBitmapContextCreateImage(UIGraphicsGetCurren

Mark_IOS群组's 专栏 5018

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

IOS用CGContextRef画各种图形

IOS用CGContextRef画各种图形 首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,vi

秋天的风的专栏 552

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

极好的链接

//iphone开发笔记和技巧总结 http://www.cocoachina.com/bbs/read.php?tid-73570-page-1.html  //iOS开源项目 http://mobdevgroup.com/platform/ios/project/

MX_xuanXiao的博客 942

使用 CGContextRef 进行简单内容绘制

摘要 : CGContextRef 功能强大,我们借助它可以画各种图形。这里所举例子只是简单内容绘制,冰山一角,对此感兴趣的朋友可以举一反三,实现各种酷炫效果。 效果如下: KMDrawView.h 1 #import <UIKit/UIKit.h> 2 3 @interface KMDrawView : UIView 4 5 @end KM...

weixin_30329623的博客 83

iOS用CGContextRef画图

转载别人的一个关于iOS的CGContextRef画图文章,很不错,给他家推荐下: 转载至http://blog.youkuaiyun.com/rhljiayou/article/details/9919713 首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics C

zhuxb523的专栏 484

iphone CGContextRef 使用画…

原文地址:CGContextRef 使用画一些简单图形">iphone CGContextRef 使用画一些简单图形作者:若水一叶 获取上下文 CGContextRef context = UIGraphicsGetCurrentContext();   画一个正方形图形 没有边框 CGContextSetRGBFillColor(context, 0, 0.25, 0, 0.5); CG

Lee'S 专栏 528

CGContextRef 笔记--Geometry

CGContextRef 是什么东西??? CGContextRef 是用来进来路径相关的绘图。 Core Animation 为 UIKit提供了底层的环境, UIkit 为 Quartz的 Object-c 方法进行了封装, 获得CGContextRef 的方法 CGContextRefctx = UIGraphicsGetCurrentContext(); 设置...

weixin_33811961的博客 91

ios开发使用CGContextRef画图

1>画三角形,并填充底色     CGContextRef context = UIGraphicsGetCurrentContext();          CGContextMoveToPoint(context, SCREEN_WIDTH-10-65, 10);          CGContextAddLineToPoint(context, SC

useruser19900720的博客 612

关于CGContextRef和CGMutablePathRef&UIBezierPath

1.CGContextRef 1.1背景知识 Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个画框. Quartz提供了以下几种类型的Graphics Context: Bitmap Graphics Context PDF Graphics Context Window

Walden_tinghou的专栏 4223
上一篇: 用正则表达式验证邮箱和手机号
下一篇: 唯有坚持方能成功
程序员专栏
博客等级 码龄14年 220粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值