Quartz2D简单图形

简介:

这些天一直准备学绘图和核心动画这块,可一直找不到合适系统的教材,没有大纲,比较纠结,在网上搜了又搜,看着其他的博文写的

第一遍来学习绘制简单的图形


// 若想利用Quartz 2D在View上绘制信息,首先必须有图形上下文,用来保存绘图信息,输出目标。其次,图像上下文与View相关联(这时候图形上下文的输出目标即为关联的View)
 
// 1.为什么需要在drawrect中绘图? 因为在drawRect:方法中才能取得跟view相关联的图形上下文
// 2.drawRect:方法在什么时候被调用?
   //1.当view第一次显示到屏幕上时(被加到UIWindow上显示出来)
   //2.调用view的setNeedsDisplay或者setNeedsDisplayInRect:时
// 3.绘图顺序  后绘制的图形若与先绘制的图形发生重叠,后绘制的图形覆盖先绘制的图形
 
- (void)drawRect:(CGRect)rect {
    //画直线
    //获取图像上下文,在此方法调用获取的是layer的上下文
    CGContextRef context=UIGraphicsGetCurrentContext();
    //设置起点
    CGContextMoveToPoint(context, 20, 100);
    //设置终点
    CGContextAddLineToPoint(context, 50, 60);
    CGContextAddLineToPoint(context, 60, 80);
    //设置线条颜色 二选一
   /* [[UIColor yellowColor]set];//设置边框填充颜色都为同一种
    [[UIColor yellowColor] setStroke];//设置边框颜色
    [[UIColor yellowColor] setFill];// 设置填充颜色*/
    CGContextSetRGBStrokeColor(context, 0, 1.0, 0, 1.0);
    //设置填充颜色
    CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor);
    //设置线条宽度
    CGContextSetLineWidth(context, 5.0);
    //设置起点终点样式为圆角
    CGContextSetLineCap(context,  kCGLineCapRound);
    //设置线条转角样式为圆角
    CGContextSetLineJoin(context, kCGLineJoinRound);
    //渲染到图层上  不调用前面设置的不显示
    //线条边框渲染
    CGContextStrokePath(context);
    //填充 内部填充
//    CGContextFillPath(context);
     
    //画三角
    //设置三个点
    CGContextMoveToPoint(context, 30, 120);
    CGContextAddLineToPoint(context, 50, 200);
    CGContextAddLineToPoint(context, 200, 60);
     CGContextAddLineToPoint(context, 200, 80);
    //设置边框颜色
    CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 1.0);
    //连接起点终点 无的话是只是几个点按顺序相连,起始点并未连接
    CGContextClosePath(context);
    CGContextStrokePath(context);
//    CGContextFillPath(context);
     
    //画矩形
    CGContextAddRect(context, CGRectMake(50, 60, 100, 80));
    [[UIColor blueColor] setStroke];
//    CGContextFillPath(context);
    CGContextStrokePath(context);
     
    //画圆 1参数 上下文 2、3参数 圆中心x、y坐标 4参数 半径 5、6参数起始角度 7参数 0顺时针 1逆时针
    CGContextAddArc(context, 60, 60, 20, 3.1415026/2, 0, 1);
    CGContextStrokePath(context);
    //画椭圆 圆是特殊的椭圆 所以可以用画椭圆的方法来画圆
    CGContextAddEllipseInRect(context, CGRectMake(80, 80, 100, 200));
    CGContextStrokePath(context);
     
    //画圆弧
    CGContextAddArc(context, 160, 160, 50, 3.1415026/2, 0, 1);
    CGContextSetRGBStrokeColor(context, 1.0, 1.0, 0.5, 1.0);
    CGContextClosePath(context);
    CGContextStrokePath(context);
}


相关文章
|
5月前
|
容器
Quartz 简单使用
Quartz 简单使用
55 0
|
Java 调度
quartz(一)基础篇
quartz(一)基础篇
85 0
|
iOS开发 数据格式
iOS - Quartz 2D 第三方框架 Charts 绘制图表
1、Charts 简介 使用第三方框架 Charts 绘制 iOS 图表。GitHub 源码 Charts Charts 是一款用于绘制图表的框架,可以绘制柱状图、折线图、K线图、饼状图等。Charts 只有 Swift 版本。
2741 0
|
存储 Java 调度
这种方式整合Quartz你见过吗?
`Quartz`是一款优秀的任务调度框架,支持内存、JDBC的形式来存储未执行的任务列表,支持多个任务节点同时执行任务,支持任务漂移到不同的节点执行。
|
Java 应用服务中间件
Quartz - 基础篇(下)
Quartz - 基础篇(下)
176 0
Quartz - 基础篇(下)
Quartz - 基础篇(上)
Quartz - 基础篇(上)
121 0
Quartz - 基础篇(上)
【Quartz】常用方法的使用方式(三)
原文:【Quartz】常用方法的使用方式(三) 前言    总结了一下quartz组件的一些常用方法,以备将来不时之需。哈哈,看着挺简单有些好是值得笔记一下的。好记性不如烂笔头吗? 代码部分:  方法类内容: public class ExamplesGo { ...
1106 0
|
iOS开发
iOS:quartz2D绘图(给图形绘制阴影)
quartz2D既可以绘制原始图形,也可以给原始图形绘制阴影。 绘制阴影时,需要的一些参数:上下文、阴影偏移量、阴影模糊系数 注意:在drawRect:方法中同时调用绘制同一个图形时,在对绘制的图形做绘制阴影处理前,需要先对上下文进行保存,绘制阴影成功后,还要对上下文进行复位,还原为最原始的上下文。
1182 0