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

本次就讲一些图形的画法

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. WPF - 属性系统 (4 of 4)

    依赖项属性的重写 在基于C#的编程中,对属性的重写常常是一种行之有效的解决方案:在基类所提供的属性访问符实现不能满足当前要求的时候,我们就需要重新定义属性的访问符. 但对于依赖项属性而言,属性执行逻辑 ...

  2. ASP.NET Web API Selfhost宿主环境中管道、路由

    ASP.NET Web API Selfhost宿主环境中管道.路由 前言 前面的几个篇幅对Web API中的路由和管道进行了简单的介绍并没有详细的去说明一些什么,然而ASP.NET Web API这 ...

  3. AOP概述

    了解AOP之前,先大概讲述一下SOC: Soc:Separation of concerns 关注分离点, 在不同的场景SOC有着不同的含义 Soc是一个过程:Soc是一个将功能点分解以尽量减小功能交 ...

  4. 百度地图API的使用

    ------------------自说自话----------------------------- 好奇怪,习惯性使用有道云笔记记录心得与知识后就很少用博客园来记录了. 但是后来想想,有些东西还是 ...

  5. .NET Core采用的全新配置系统[8]: 如何实现配置与源文件的同步

    配置的同步涉及到两个方面:第一,对原始的配置文件实施监控并在其发生变化之后从新加载配置:第二,配置重新加载之后及时通知应用程序进而使后者能够使用最新的配置.接下来我们利用一个简单的.NET Core控 ...

  6. Hawk 1.2 快速入门2 (大众点评18万美食数据)

    本文将讲解通过本软件,获取大众点评的所有美食数据,可选择任一城市,也可以很方便地修改成获取其他生活门类信息的爬虫. 本文将省略原理,一步步地介绍如何在20分钟内完成爬虫的设计,基本不需要编程,还能自动 ...

  7. 多线程同步工具——LockSupport

    用例1:子线程等待主线程发放许可! public static void main(String[] args) { Thread thread = new Thread(){ public void ...

  8. java监控之ManagementFactory分析

    The ManagementFactory class is a factory class for getting managed beans for the Java platform. This ...

  9. 图的遍历(搜索)算法(深度优先算法DFS和广度优先算法BFS)

    图的遍历的定义: 从图的某个顶点出发访问遍图中所有顶点,且每个顶点仅被访问一次.(连通图与非连通图) 深度优先遍历(DFS): 1.访问指定的起始顶点: 2.若当前访问的顶点的邻接顶点有未被访问的,则 ...

  10. React.js实现原生js拖拽效果及思考

    一.起因&思路 不知不觉,已经好几天没写博客了...近来除了研究React,还做了公司官网... 一直想写一个原生js拖拽效果,又加上近来学react学得比较嗨.所以就用react来实现这个拖 ...