- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Quartz 2D 绘图基础
Quartz 2D是一个二维绘图引擎。Quartz 2D的API是C语言,来自于CoreGraphics框架。 Quartz 2D以PDF的规范为基础的图形库,用来绘制二维文字和图形,允许相同的绘图指令在任何装置上,使用可以得到的最佳分辨率,产生相同的输出。这里介绍一下一些基本绘图操作。
一. 绘制直线?
?
代码如下(这些需要重写的drawRect方法中调用):
CGContextRef context = UIGraphicsGetCurrentContext();// 1. 获取一个与视图相关联的上下文
// 2. 构建路径
CGContextBeginPath(context);
// 2.1 设置上下文路径起点
CGContextMoveToPoint(context, 50, 50);
// 2.2 增加路径内容
CGContextAddLineToPoint(context, 150, 150);
// 3. 保存当前上下文
CGContextSaveGState(context);
// 4. 设置上下文状态
// 4.1 设置边线颜色
CGContextSetRGBStrokeColor(context, 1, 0, 0, 1);
// 4.2 设置线宽
CGContextSetLineWidth(context, 10);
// 4.4 设置线段连接样式
CGContextSetLineJoin(context, kCGLineJoinBevel);
// 4.5 设置线段收尾样式
CGContextSetLineCap(context, kCGLineCapRound);
// 5. 绘制路径
// 与上一行等效
CGContextStrokePath(context);
// 6. 恢复上下文
CGContextRestoreGState(context);
// 7. 再次绘制
CGContextSetRGBStrokeColor(context, 0, 0, 1, 1);
CGContextMoveToPoint(context, 50, 200);
CGContextAddLineToPoint(context, 200, 200); CGContextStrokePath(context);
二.画圆弧?
1.画不填充圆,效果如图?
?
代码如下:
CGContextRef context = UIGraphicsGetCurrentContext();
[[UIColor redColor] set];
CGContextAddArc(context, 160, 230, 100, M_PI, -M_PI, 0);
CGContextStrokePath(context);
2.画实心圆弧,效果如图?
?
代码如下:
// 1. 获取一个与视图相关联的上下文
CGContextRef context = UIGraphicsGetCurrentContext();
// 设置颜色
[[UIColor greenColor]setFill];
// 2. 增加圆形的路径
CGContextAddEllipseInRect(context, CGRectMake(50, 50, 200, 200));
// 3. 画圆
CGContextFillPath(context);
三:绘制渐变?
效果如图:?
代码如下:
// 定义渐变引用CGGradientRef
CGGradientRef gradient;
// 定义色彩空间引用
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
//定义渐变颜色组件
//每四个数一组,分别对应r,g,b,透明度
CGFloat components[8] = {1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0};
//定义颜色渐变位置
// 第一个颜色开始渐变的位置
// 第二个颜色结束渐变的位置
CGFloat locations[2] = {1,0};
//创建颜色渐进
gradient = CGGradientCreateWithColorComponents(colorSpace, components, locations, 2);
/
您可能关注的文档
- 移动互联软件测试-2017 测试总结主要内容 测试总结报告的内容.docx
- 移动互联软件测试-2017 错误猜测法 错误推测法-说课稿.docx
- 移动互联软件测试-2017 分支覆盖法 分支覆盖法-说课稿.docx
- 移动互联软件测试-2017 分支条件覆盖法 分支条件覆盖法-说课稿.docx
- 移动互联软件测试-2017 基本路径覆盖法 基本路径覆盖法-说课稿.docx
- 移动互联软件测试-2017 脚本回放 脚本回放-说课稿.docx
- 移动互联软件测试-2017 决策表法 决策表法-说课稿.docx
- 移动互联软件测试-2017 缺陷的属性及其报告 缺陷的统计分析.docx
- 移动互联软件测试-2017 缺陷的属性及其报告 缺陷的优先级和严重性.docx
- 移动互联软件测试-2017 缺陷的属性及其报告 如何撰写一个好的Bug报告.docx
文档评论(0)