Quartz2D 之 简单使用
1. 获取Graphics Context
CGContextRef ctx = UIGraphicsGetCurrentContext();
2. 最后的渲染接口
CGContextStrokePath(ctx);//渲染空心图形,但线条没有空心直说,只有宽度
CGContextFillPath(ctx);//渲染实心图形,如圆、矩形等。
3. 基本接口
3.1. 基本图形接口
3.1.1. 颜色设置
//第一种颜色设置
CGContextSetRGBStrokeColor(ctx, 1.0, 0.7, 0.3, 1.0); //第二种颜色设置
CGContextSetRGBFillColor(ctx, 1.0, 0.7, 0.3, 1.0); //第三种设置颜色的方式:同时设置空心颜色和实心颜色
[[UIColor grayColor] set] //第四种颜色设置 实心颜色
[[UIColor grayColor] setFill] //第五种颜色设置 空心颜色
[[UIColor grayColor] setStroke] //第六种颜色设置
[[UIColor colorWithRed:1.0 green: blue: alpha:1.0] set];
3.1.2. 直线
// 设置起点
CGContextMoveToPoint(ctx, , );
// 设置终点
CGContextAddLineToPoint(ctx, , ); //关闭起点和终点
CGContextClosePath(ctx);
直线属性:
//设置线条的宽度
CGContextSetLineWidth(ctx, ); //设置线条起点和终点的样式为圆角
CGContextSetLineCap(ctx, kCGLineCapRound); //设置线条的转角的样式为圆角
CGContextSetLineJoin(ctx, kCGLineJoinRound);
3.1.3. 矩形
CGContextAddRect(ctx, CGRectMake(, , , ));
3.1.4. 圆
//圆
CGContextAddArc(ctx, , , , , * M_PI, ); //椭圆
CGContextAddEllipseInRect(ctx, CGRectMake(, , , ));
3.1.5. 圆弧
第一种方式,跟画圆一样,只是弧度大小小于 2*M_PI, 一个M_PI是180度。
CGContextAddArc(CGContextRef _Nullable c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise) //参数分别为:Graphics Context, 圆心X轴,圆心Y轴,半径,起始弧度,结束弧度,顺/逆时针
空心绘制时需要封口。
3.1.6. 饼状图
饼状图由两条线,和一个没有封口的圆弧组成。或者实现起来由一条线,一个圆弧,然后封口组成。注意的是,圆弧的圆心和线的起点是同一个点。
// 画线
CGContextMoveToPoint(ctx, , );
CGContextAddLineToPoint(ctx, , ); // 画圆弧
CGContextAddArc(ctx, , , , M_PI_2, M_PI, ); // 关闭路径
CGContextClosePath(ctx);
M_PI对应的弧度是180度,这样,就可以根据比例来算初始位置和大小了。
Quartz2D 之 简单使用的更多相关文章
- QuartZ2D __ 简单用法 1
一. 简单做一个画板 1. 建立一个UIView类 2. 在.m里建立一个延展 3. 分别定义一个起点, 一个终点的结构体属性 . 在建立一个存储路径的数组 @interface DrawView ( ...
- iOS-绘图(Quartz2D)的简单使用(原创)
前言 附上绘图demo--https://github.com/yangfangxue/YFX_Quartz-2D 什么是Quartz2D? Quartz 2D是一个二维图形绘制引擎,支持ios环境和 ...
- Quartz2D 之 简单介绍
1. 概述 Quartz2D 是一个二维绘图引擎. 主要功能: 绘制图形:线.矩形.圆.弧 绘制文字 绘制图片 绘制PDF 裁截图片 自定义UI控件 2. 图形上下文 Graphics Context ...
- 【iOS开发-80】Quartz2D画图简单介绍:直线/圆形/椭圆/方形以及上下文栈管理CGContextSaveGState/CGContextRestoreGState
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2Vpc3ViYW8=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...
- iOS Quartz2D画图
对于刚接触Quartz2D的同学来说,先了解 上下文 的概念,再从最基础的画线来具体体验Quartz2D的画图步骤 介绍Quart2D :是苹果官方的二维(平面)绘图引擎,同时支持iOS和macOS系 ...
- iOS 之 Quartz2D
1. Quartz2D 之 简单介绍 2. Quartz2D 之 简单使用 3. Quartz2D 之 绘制文本
- Quartz2D之绘制一个简单的机器猫
学习iOS有一段时间了,在博客园也默默的潜水了两个月,见识了很多大神,收获不少. 今天整理笔记,发现忘记的不少,我感觉需要及时的整理一下了,同时也把做的小东西贴上来和大家分享一下. 最近学习了Quar ...
- iOS开发UI篇—Quartz2D简单介绍
iOS开发UI篇—Quartz2D简单介绍 一.什么是Quartz2D Quartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作: 绘制图形 : 线条\三角形\ ...
- iOS开发UI篇—Quartz2D简单使用(一)
iOS开发UI篇—Quartz2D简单使用(一) 一.画直线 代码: // // YYlineview.m // 03-画直线 // // Created by apple on 14-6-9. // ...
随机推荐
- iOS中FMDB和GCD剖析
转载至:http://www.cocoachina.com/industry/20130819/6821.html 英文链接:https://github.com/ccgus/fmdb 由于FMDB是 ...
- AVR之BOOTLOADER技术详解(转)
源:http://blog.csdn.net/zhenhua10/article/details/6442412 ATmega128具备引导加载支持的用户程序自编程功能(In-System Progr ...
- fiddler2 中文乱码问题
打开注册表编辑器,找到HKCU\Software\Microsoft\Fiddler2\,在里面添加一个字符串值,名叫HeaderEncoding,值设置为默认编码.建议设成GB18030.然后要记得 ...
- 使用JQuery结合HIghcharts实现从后台获取JSON实时刷新图表
项目做了一个报表,可以实时的观察呼叫中心的电话访问量,之前的版本是使用JFreechart做的,使用一段时间后出现内存溢出,服务器的内存使用量会变得很大,所以改用Ajax前台加载数据的方式实现实时报表 ...
- 配置snort
0.如果要输出到mysql,请安装barnyard2 在此之前,请启动并配置mysql git clone https://github.com/firnsy/barnyard2 cd barnyar ...
- 设计一个 iOS 控件
转载自:http://blog.csdn.net/zhangao0086/article/details/45622875 代码的等级:可编译.可运行.可测试.可读.可维护.可复用 前言 一个控件从外 ...
- Android------>TableLayout表格布局方式
main.xml表格代码分析 <?xml version="1.0" encoding="utf-8"?> <TableLayout xmln ...
- Direct3D中的绘制
1.顶点缓存和索引缓存 一个顶点缓存是一个包含顶点数据的连续内存空间:一个索引缓存是一个包含索引数据的连续内存空间. 顶点缓存用接口IDirect3DVertexBuffer9表示:索引缓存用接口ID ...
- 关于 Equal Override Overload 和 IEquatable
namespace TestEqual { class Program { static void Main(string[] args) { Point2D a = new Point2D { X ...
- hdu1915
对于图的东西总是一筹莫展,没办法,还是翻出以前的基础题来看看,然后慢慢分析吧.路漫漫其修远兮,吾将上下而求索…… void bfs(int x,int y){ for(int k=0;k<8;k ...