Quartz2D二维绘图引擎
2015-08-23 16:01
295 查看
Quartz2D二维绘图引擎
这个二维绘图引擎的功能非常强大
一般苹果公司xcode 提供给我们的一些UI控件不能满足我们的需求
所以我们会自定义控件
xcode 提供的所有控件都是由这个绘图引擎画出来的
我们可以自定义一些控件,完成我们想要完成的一些特定的功能
从而解决一些系统自定义控件实现不了的功能
1.基本图形绘制
* 线段(线宽、线段样式)
* 矩形(空心、实心、颜色)
* 三角形、梯形等形状
* 椭圆\圆
* 圆弧
* 文字绘制
* 图片绘制(pattern)
* 图形上下文栈
下面是简单的 三角形和矩形的绘制
图形的绘制是用纯C写出来的,没有面向对象的思想
所以大家理解起来一定要区分!
这个二维绘图引擎的功能非常强大
一般苹果公司xcode 提供给我们的一些UI控件不能满足我们的需求
所以我们会自定义控件
xcode 提供的所有控件都是由这个绘图引擎画出来的
我们可以自定义一些控件,完成我们想要完成的一些特定的功能
从而解决一些系统自定义控件实现不了的功能
1.基本图形绘制
* 线段(线宽、线段样式)
* 矩形(空心、实心、颜色)
* 三角形、梯形等形状
* 椭圆\圆
* 圆弧
* 文字绘制
* 图片绘制(pattern)
* 图形上下文栈
下面是简单的 三角形和矩形的绘制
图形的绘制是用纯C写出来的,没有面向对象的思想
所以大家理解起来一定要区分!
// // MyDraw.m // 画图 @implementation MyDraw //Quartz2D 是一个二维绘图引擎 //自定义UI控件 //裁剪图片 - (void)drawRect:(CGRect)rect { draw4Rect(); } void draw4Rect() { //获得图形上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); //画图形 CGContextAddRect(ctx, CGRectMake(10, 10, 100, 100)); //绘制图形 //CGContextStrokePath(ctx); //实的图形 CGContextFillPath(ctx); } void drawTriangle() { // Drawing code //1.获得图形上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); //2.拼接图形 CGContextMoveToPoint(ctx, 10, 10); //添加一条线段到 CGContextAddLineToPoint(ctx, 100, 100); CGContextAddLineToPoint(ctx, 150, 40); //CGContextAddLineToPoint(ctx, 10, 10); //连接起点和终点 CGContextClosePath(ctx); //CGContextMoveToPoint(ctx, 20, 20); //3.渲染显示到view 上面 //以空心的形式画出来 CGContextStrokePath(ctx); } @end
相关文章推荐
- 最近的两个问题<input>与<frame src="/example/html/frame_a.html" name="showframe">
- HDU--1114 Piggy-Bank(完全背包)
- 黑马学习笔记_javaIO(一)
- RPG黑暗之光(1)开始场景搭建、开始UI
- Node.j中path模块对路径的操作
- 【JavaScript基础知识】——数据类型与typeof操作符
- Objective-C 【类对象及SEL存储方式】
- Ubuntu 引导文件配置
- Objective-C 【类对象及SEL存储方式】
- JAXB2完成java bean到xml的相互转换
- 例题7-4 素数环 UVa 524
- HDU 5200 Trees(线段树 离线应用)经典
- WinCE学习相关知识
- blog集合
- mfc 2048
- JavaScript高级
- 1、hadoop配置伪分布式
- mongoDB与sql语句对照表
- Java之旅hibernate(5)——hibernate的三种状态
- 读写锁优先级 写饥饿