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

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

// 若想利用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);
}

Quartz2D简单图形的更多相关文章

  1. iOS开发UI篇—Quartz2D简单介绍

    iOS开发UI篇—Quartz2D简单介绍 一.什么是Quartz2D Quartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作: 绘制图形 : 线条\三角形\ ...

  2. iOS开发UI篇—Quartz2D简单使用(一)

    iOS开发UI篇—Quartz2D简单使用(一) 一.画直线 代码: // // YYlineview.m // 03-画直线 // // Created by apple on 14-6-9. // ...

  3. iOS开发UI篇—Quartz2D简单使用(三)

    iOS开发UI篇—Quartz2D简单使用(三) 一.通过slider控制圆的缩放 1.实现过程 新建一个项目,新建一个继承自UIview的类,并和storyboard中自定义的view进行关联. 界 ...

  4. iOS开发UI篇—Quartz2D简单使用(一)

    iOS开发UI篇—Quartz2D简单使用(一) 一.画直线 代码: 1 // 2 // YYlineview.m 3 // 03-画直线 4 // 5 // Created by apple on ...

  5. iOS边练边学--(Quartz2D)基本图形的绘制#附加自定义进度控件的练习

    一.Quartz2D使用须知 Quartz2D的API是纯C语言的 Quartz2D的API来自于Core Graphics框架 二.<1>通过原始的方法(C语言)绘制简单图形--了解 & ...

  6. AJ学IOS(28)UI之Quartz2D简单介绍

    AJ分享,必须精品 iOS开发UI篇—Quartz2D简单介绍 什么是Quartz2D Quartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作: 绘制图形 : ...

  7. 学习笔记:HTML5 Canvas绘制简单图形

    HTML5 Canvas绘制简单图形 1.添加Canvas标签,添加id供js操作. <canvas id="mycanvas" height="700" ...

  8. iOS开发UI篇—Quartz2D简单使用(二)

    iOS开发UI篇—Quartz2D简单使用(二) 一.画文字 代码: // // YYtextview.m // 04-写文字 // // Created by 孔医己 on 14-6-10. // ...

  9. [ASP.NET] 图形验证码破解-以简单图形为例

    原文 http://www.dotblogs.com.tw/joysdw12/archive/2013/06/08/captcha-cracked.aspx 前言 这次来讲个比较有趣的主题,就是该如何 ...

随机推荐

  1. Dacapao 实验集(9.12 版本) 能不能给个网址?【内存分析实验】

    网址 Dacapao 实验集 引用 以前看到的文章,如果使用这个基准程序,引用文献很多时候是一篇论文: Blackburn S M, Garner R, Hoffmann C, et al. The ...

  2. SQLSERVER CXPACKET 等待

    --SQLSERVER CXPACKET 等待 2013-6-11 2 --联机丛书: 3 --当尝试同步查询处理器交换迭代器时出现.如果针对该等待类型的争用成为问题时,可以考虑降低并行度 4 5 6 ...

  3. 【vue】项目编译报错‘npm ERR! **@**dev: `webpack-dev-server --inline --progress --config ’’

    关于npm ERR! **@**dev: `webpack-dev-server --inline --progress --config‘ 原因:这是新版webpack存在的BUG,卸载现有的新版本 ...

  4. 使用C#写MVC框架(一:核心原理)

    目录: 一.MVC原理解析 二.HttpHandler 1.HttpHandler,IHttpHandler,MvcHandler的说明 2.IHttpHandler解析 3.MvcHandler解析 ...

  5. 背水一战 Windows 10 (61) - 控件(媒体类): InkCanvas 涂鸦编辑

    [源码下载] 背水一战 Windows 10 (61) - 控件(媒体类): InkCanvas 涂鸦编辑 作者:webabcd 介绍背水一战 Windows 10 之 控件(媒体类) InkCanv ...

  6. PowerDesigner执行脚本 name/comment/stereotype互转

    执行方法:工具栏->Tools -> Execute Commands -> Edit/Run Script (Ctrl+Shift+X) 如下图所示: 1.Name转到Commen ...

  7. 【转】JS浮点数运算Bug的解决办法

    37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一 ...

  8. [leetcode.com]算法题目 - Remove Duplicates from Sorted List

    Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...

  9. CF1146H Satanic Panic

    题目传送门 Description 给定二维平面内\(n\)个点\((n\leq 300)\),求能组成五角星(不要求正五角星)的五元组个数. Solution 一道小清新的寄蒜几盒计算几何题,代码不 ...

  10. kls与flag(map)

    题目传送门 这道题还挺搞笑的,\(map\)常数贼大还是把它水过了. 可以发现这道题求的是 \((j>i)j-i=h_i+h_j,j-i=|h_i-h_j|\)的对数. 那么显然,因为高度大于\ ...