记录一次Quartz2D学习(二)
(一)内主要就是讲了线条的绘制以及绘制状态的保存与恢复
本次就讲一些图形的画法
2 图形的绘制
2.1 三角形的绘制 :(就是绘制三条线)
- (void)drawRect:(CGRect)rect {
//获取绘制上下文
CGContextRef ctx =UIGraphicsGetCurrentContext();
//设置连接处的圆角
CGContextSetLineJoin(ctx, kCGLineJoinRound);
//设置颜色以及线条粗细
[[UIColor yellowColor] set];
CGContextSetLineWidth(ctx, 20);
//移动起始点
CGContextMoveToPoint(ctx, 50, 50);
//三条先的绘制
CGContextAddLineToPoint(ctx, 150, 150);
CGContextAddLineToPoint(ctx, 50, 200);
CGContextAddLineToPoint(ctx, 50, 50);
//绘制
CGContextStrokePath(ctx)}

2.2 长方形的绘制
TIP:这里设置线条的宽度 ,不会影响坐标,线宽会按照绘制的线条想上下或者左右进行绘制
- (void)drawRect:(CGRect)rect {
//获取绘制上下文
CGContextRef ctx =UIGraphicsGetCurrentContext();
//设置连接处的圆角
CGContextSetLineJoin(ctx, kCGLineJoinRound);
//设置颜色以及线条粗细
CGContextSetLineWidth(ctx, 20);
[[UIColor yellowColor] set];
//直接调用添加矩形方法
CGContextAddRect(ctx, CGRectMake(0, 0, 300, 250));
//使用下面这个方法创建一个实心的矩形
CGContextFillRect(ctx, CGRectMake(0,260, 300, 100));
//绘制---使用填充方法之后 可以不使用渲染方法
CGContextStrokePath(ctx);
}

实心矩形

2.3 绘制一个圆形
- (void)drawRect:(CGRect)rect {
//获取绘制上下文
CGContextRef ctx =UIGraphicsGetCurrentContext();
//设置连接处的圆角
CGContextSetLineJoin(ctx, kCGLineJoinRound);
//设置颜色以及线条粗细
CGContextSetLineWidth(ctx, 20);
[[UIColor yellowColor] set];
//使用下面方法绘制一个空心圆 一个PI只能绘制半圆 -- 弧形也可以通过这种方式来绘制
CGContextAddArc(ctx, 100, 100, 50, 0, M_PI*2, 0 );
//使用下面方法来绘制一个实心的圆或者椭圆
CGContextFillEllipseInRect(ctx, CGRectMake(100, 100, 100, 50));
//绘制---使用填充方法之后 可以不使用渲染方法
CGContextStrokePath(ctx);
}


2.4 绘制扇形
- (void)drawRect:(CGRect)rect {
//获取绘制上下文
CGContextRef ctx =UIGraphicsGetCurrentContext();
//设置颜色以及线条粗细
CGContextSetLineWidth(ctx, 20);
[[UIColor yellowColor] set];
//使用下面方法绘制一个空心圆 一个PI只能绘制半圆
CGContextAddArc(ctx, 100, 100, 50, 0, M_PI, 0 );
//使用下面方法来绘制一个封闭的扇形
CGContextClosePath(ctx);
//使用下面方法填充扇形
CGContextSetRGBFillColor(ctx, 255, 0, 0, 1);
//使用下面方法来封闭上面的扇形
CGContextFillPath(ctx);
//绘制---使用填充方法之后 可以不使用渲染方法
CGContextStrokePath(ctx);
}


2.5 填充一个四分之一圆
- (void)drawRect:(CGRect)rect {
//获取绘制上下文
CGContextRef ctx =UIGraphicsGetCurrentContext();
//设置颜色以及线条粗细
CGContextSetLineWidth(ctx, 20);
[[UIColor yellowColor] set];
//移动到初始点
CGContextMoveToPoint(ctx, 100, 200);
//添加线条
CGContextAddLineToPoint(ctx, 200, 200);
//添加线条
CGContextAddLineToPoint(ctx, 200, 300);
//添加圆弧
CGContextAddArc(ctx, 200, 200, 100, M_PI / 2, M_PI, 0);
//填充
CGContextFillPath(ctx);
}
记录一次Quartz2D学习(二)的更多相关文章
- 记录一次Quartz2D学习(六)
(五)内主要讲到了一些图层操作 本次主要讲 图片的裁剪 6图片裁剪 6.1 图片裁剪 TIP: 可能会影响统一图层的显示 - (void)drawRect:(CGRect)rect { CGConte ...
- 记录一次Quartz2D学习(三)
在(二)内,讲到了几何图形的绘制,这次就讲文本与图片的绘制 3 图片与文本 3.1 文本绘制 - (void)drawRect:(CGRect)rect { NSString * str = @&qu ...
- 记录一次Quartz2D学习(一)
经常看点 drawRect的重写 但是不知道这究竟是神马 今天开始学习这一块的东西,更确切地说是深入 早在view的时候 就经常会调用layer的maskToBounds属性,其实 重写 drawR ...
- 记录一次Quartz2D学习(七)
(六)内主要讲述了图片的裁剪 本次主要讲交互 7.交互 7.1 通过外部刷新内部的显示效果 初始化的时候设定好初始值,调用setNeedsDisplay方法来重新绘制 - (instancetype ...
- 记录一次Quartz2D学习(五)
(四)内主要讲了绘制状态的保存与恢复 本次主要讲述 缩放,旋转,平移等操作 5.附加操作 5.1 旋转 TIP: 旋转操作主要是对本次渲染的图层进行旋转,旋转的中心为左上角顶点 - (void)dra ...
- 记录一次Quartz2D学习(四)
(三)内主要讲了图片与文字的绘制 本次主要讲解 绘制状态的保存与恢复,以及对它的使用 4.绘制状态 4.1 绘制状态的保存与恢复,以及对它的应用 TIP:通过对保存恢复绘制状以及多次的渲染,可以绘制出 ...
- emberjs学习二(ember-data和localstorage_adapter)
emberjs学习二(ember-data和localstorage_adapter) 准备工作 首先我们加入ember-data和ember-localstorage-adapter两个依赖项,使用 ...
- iOS学习——Quartz2D学习之UIKit绘制
iOS学习——Quartz2D学习之UIKit绘制 1.总述 在IOS中绘图技术主要包括:UIKit.Quartz 2D.Core Animation和OpenGL ES.其中Core Animati ...
- iOS学习——Quartz2D学习之DrawRect
Quartz2D学习之DrawRect 本文以问答形式主要讲述Quartz2D的相关内容,参考内容是网上下载的学习视频资料. 1.什么是Quartz2D? 他是一个二维的绘图引擎,同时支持iOS和Ma ...
随机推荐
- 一种简单的CQRS架构设计及其实现
一.为什么要实践领域驱动? 近一年时间我一直在思考一个问题:"如何设计一个松耦合.高伸缩性.易于维护的架构?".之所以有这样的想法是因为我接触的不少项目都是以数据库脚本来实现业务逻 ...
- JAAS 是个什么梗
参考资料 该文中的内容来源于 Oracle 的官方文档.Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以从这个总入口 Java SE 8 Documentati ...
- The type javax.ws.rs.core.MediaType cannot be resolved. It is indirectly referenced from required .class files
看到了http://stackoverflow.com/questions/5547162/eclipse-error-indirectly-referenced-from-required-clas ...
- SQL Server中的锁
死锁的类型 不同表之间的相互等待,第一个事务操作A->B, 第二个事务操作B->A - 每个事务都锁定对方下一步将要操作的表 同一张表之间的相互等待, 无索引导致的全表扫描,下文中说到的情 ...
- css3圆环百分比,菜单栏定位导航
前段时间,社区个人中心改版,看了下设计图,当时隐约感觉到有两个地方(圆环百分比,菜单栏定位导航)比较麻烦.设计图大致如下: 首先看圆环百分比,网上的做法大致分两种,一种是用了CSS3中的transfo ...
- GitHub实战系列~1.环境部署+创建第一个文件 2015-12-9
GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ———————————————————————————————————————— ...
- 理清JavaScript正则表达式--下篇
紧接:"理清JavaScript正则表达式--上篇". 正则在String类中的应用 类String支持四种利用正则表达式的方法.分别是search.replace.match和s ...
- 再谈React.js实现原生js拖拽效果
前几天写的那个拖拽,自己留下的疑问...这次在热心博友的提示下又修正了一些小小的bug,也加了拖拽的边缘检测部分...就再聊聊拖拽吧 一.不要直接操作dom元素 react中使用了虚拟dom的概念,目 ...
- 用eclipse开发项目时遇到的常见错误整理,和配套解决方案(1)
01. MyEclipse项目导入eclipse后,怎么发布不了? 今天导入了之前的一个MyEclipse项目,更改jdk后,发现发布不了.解决方案如下: 打开项目根目录,找到.settings文件夹 ...
- 在mongoose中使用$match对id失效的解决方法
Topic.aggregate( //{$match:{_id:"5576b59e192868d01f75486c"}}, //not work //{$match:{title: ...