(一)内主要就是讲了线条的绘制以及绘制状态的保存与恢复

本次就讲一些图形的画法

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学习(二)的更多相关文章

  1. 记录一次Quartz2D学习(六)

    (五)内主要讲到了一些图层操作 本次主要讲 图片的裁剪 6图片裁剪 6.1 图片裁剪 TIP: 可能会影响统一图层的显示 - (void)drawRect:(CGRect)rect { CGConte ...

  2. 记录一次Quartz2D学习(三)

    在(二)内,讲到了几何图形的绘制,这次就讲文本与图片的绘制 3 图片与文本 3.1 文本绘制 - (void)drawRect:(CGRect)rect { NSString * str = @&qu ...

  3. 记录一次Quartz2D学习(一)

    经常看点 drawRect的重写  但是不知道这究竟是神马 今天开始学习这一块的东西,更确切地说是深入 早在view的时候 就经常会调用layer的maskToBounds属性,其实 重写 drawR ...

  4. 记录一次Quartz2D学习(七)

    (六)内主要讲述了图片的裁剪 本次主要讲交互 7.交互 7.1  通过外部刷新内部的显示效果 初始化的时候设定好初始值,调用setNeedsDisplay方法来重新绘制 - (instancetype ...

  5. 记录一次Quartz2D学习(五)

    (四)内主要讲了绘制状态的保存与恢复 本次主要讲述 缩放,旋转,平移等操作 5.附加操作 5.1 旋转 TIP: 旋转操作主要是对本次渲染的图层进行旋转,旋转的中心为左上角顶点 - (void)dra ...

  6. 记录一次Quartz2D学习(四)

    (三)内主要讲了图片与文字的绘制 本次主要讲解 绘制状态的保存与恢复,以及对它的使用 4.绘制状态 4.1 绘制状态的保存与恢复,以及对它的应用 TIP:通过对保存恢复绘制状以及多次的渲染,可以绘制出 ...

  7. emberjs学习二(ember-data和localstorage_adapter)

    emberjs学习二(ember-data和localstorage_adapter) 准备工作 首先我们加入ember-data和ember-localstorage-adapter两个依赖项,使用 ...

  8. iOS学习——Quartz2D学习之UIKit绘制

    iOS学习——Quartz2D学习之UIKit绘制 1.总述 在IOS中绘图技术主要包括:UIKit.Quartz 2D.Core Animation和OpenGL ES.其中Core Animati ...

  9. iOS学习——Quartz2D学习之DrawRect

    Quartz2D学习之DrawRect 本文以问答形式主要讲述Quartz2D的相关内容,参考内容是网上下载的学习视频资料. 1.什么是Quartz2D? 他是一个二维的绘图引擎,同时支持iOS和Ma ...

随机推荐

  1. Jvm --- 常用工具

    jps:虚拟机进程状况工具 JVM Process Status Tool. 可以列出所有目前正在运行虚拟机的进程. jps -l 详细参数: -q 输出LVMID,省略主类名称 -m 输出虚拟机进程 ...

  2. ios 常见问题解决

    一,libxml/HTMLparser.h file not find 第一种方法: 点击左边项目的根目录,再点击右边的Build Settings,手工输入文字:“Header search pat ...

  3. BootStrap_01之全局样式

    1.响应式网页: ①Responsive Web Page:一个可以根据浏览设备的不同,而自动更改布局.图片.文字效果的网页: ②构成:不能固定宽度,必须流式布局:文字和图片大小随容器大小而改变:CS ...

  4. Android开发-之监听button点击事件

    一.实现button点击事件的方法 实现button点击事件的监听方法有很多种,这里总结了常用的四种方法: 1.匿名内部类 2.外部类(独立类) 3.实现OnClickListener接口 4.添加X ...

  5. 我为NET狂官方面试题

    基础牢不牢测一测便了解,工作没工作测一测便清楚,工作有几年测一测便知道 最近帮人过一遍C#基础,出了点题目,有需要的同志拿走 答案不唯一,官方答案只供参考,若有错误欢迎提出~ 更新ing 1.面向过程 ...

  6. scheduleInRunLoop作用

    例子一: - (void)setUpStreamForFile:(NSString *)path { // iStream is NSInputStream instance variable iSt ...

  7. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(13)-系统日志和异常的处理③

    系列目录 上一节我们讲了如何捕获异常和记录日志,这一节我们讲,没有捕获的或者忘记捕获的异常包括404错误等,我们统一处理这个异常. 这一讲是利用 Application_Error 捕获所有异常,全局 ...

  8. ASP.NET MVC5+EF6+EasyUI 后台管理系统(62)-EF链接串加密

    系列目录 前言: 这一节提供一个简单的功能,这个功能看似简单,找了一下没找到EF链接数据库串的加密帮助文档,只能自己写了,这样也更加符合自己的加密要求 有时候我们发布程序为了避免程序外的SQL链接串明 ...

  9. DDD 领域驱动设计-领域模型中的用户设计

    上一篇:<DDD 领域驱动设计-如何控制业务流程?> 开源地址:https://github.com/yuezhongxin/CNBlogs.Apply.Sample(代码已更新,并增加了 ...

  10. cmder git bash 使用

    cmder 是一款 windows 下的命令集合软件,它可以集合各种系统下的命令,并且操作非常快速方便. 安装有两个版本,一个是简化版(4.27M),一个是完全版(75.7M),它们的唯一区别:完全版 ...