Quartz2D简介及基本线条绘制

* Quartz2D简介

1.什么是Quartz2D?
    他是一个二维的绘图引擎,同时支持iOS和Mac系统

2.Quartz2D能完成的工作
    画基本线条,绘制文字,图片,截图,自定义UIView.

3.Quartz2D在开发中的价值
    当我们的控件样式极其复杂时,可以把控件内部的结构给画出画,就是自定义控件.

5.什么是图形上下文,上下文的类型有哪些?
    图形上下文是用来保存用户绘制的内容状态,并决定绘制到哪个地方的.
    用户把绘制好的内容先保存到图形上下文,
    然后根据选择的图形上下文的不同,绘制的内容显示到地方也不相同,即输出目标也不相同.

    图形上下文的类型有:
        Bitmap Graphics Context(位图上下文)
        PDF Graphics Context
        Window Graphics Context
        Layer Graphics Context(图层上下文,自定义UIView取得上下文就是图层上下文.
        UIView之所以能够显示就是因为他内部有一个图层)
        Printer Graphics Context

6.如何自定义UIView,步骤是什么?

    首先得要有上下文,有了上下文才能决定把绘制的东西显示到哪个地方去.
    其次就是这个上下文必须得和View相关联.才能将内容绘制到View上面.

    步骤:
    1.要先自定定UIView
    2.实现DrawRect方法
    3.在DrawRect方法中取得跟View相关联的上下文.
    4.绘制路径(描述路径长什么样).
    5.把描述好的路径保存到上下文(即:添加路径到上下文)
    6.把上下文的内容渲染到View

* 基本线条绘制

1.DrawRect方法作用?什么时候调用.
    DrawRect作用:专用在这个方法当中绘图的.只有在这个方法当中才能取得跟View相关联的上下文.
    DrawRect是系统自己调用的, 它是当View显示的时候自动调用.

2.画线(基本步骤描述)
    2.1获取跟View相关联的上下文
     CGContextRef ctx = UIGraphicsGetCurrentContext();

    2.2绘制路径
    UIBezierPath *path = [UIBezierPath bezierPath];

    2.2.1设置起点
    [path moveToPoint:CGPointMake(10, 125)];

    2.2.2添加一根线到某个点
    [path addLineToPoint:CGPointMake(200, 125)];

    2.3把路径添加到上下文
     CGContextAddPath(ctx,path.CGPath);

    2.4把上下文的内容渲染到View上面.
     CGContextStrokePath(ctx);

 3. 想要再添加一根线怎么办?
    第一种方法:重新设置起点,添加一根线到某个点,一个UIBezierPath路径上面可以有多条线.
    第二种方法:直接在原来的基础上添加线.把上一条的终点当做下一条线的起点.添加一根线到某个点
              直接在下面addLineToPoint:

 4.怎么样设置线的宽度,颜色,样式?
    设置这些样式,我们称为是修改图形上下文的状态.
    设置线宽:CGContextSetLineWidth(ctx, 20);
    设置线段的连接样式: CGContextSetLineJoin(ctx, kCGLineJoinRound);
    添加顶角样式:CGContextSetLineCap(ctx, kCGLineCapRound);
    设置线的颜色: [[UIColor redColor] setStroke];

 5.如何画曲线?

    画曲线方法比较特殊需要一个控制点来决定曲线的弯曲程度.画曲线方法为:
    先设置一个曲线的起点
    [path moveToPoint:CGPointMake(10, 125)];
    再添加到个点到曲线的终点.同时还须要一个controlPoint(控件点决定曲线弯曲的方法程序)
    [path addQuadCurveToPoint:CGPointMake(240, 125) controlPoint:CGPointMake(125, 10)];

 6.如何画矩形,圆角矩形?

    画矩形直接利用UIBezierPath给我们封装好的路径方法
    (x,y)点决定了矩形左上角的点在哪个位置
    (width,height)是矩形的宽度高度
    bezierPathWithOvalInRect:CGRectMake(x, y, width, height)

    圆角矩形的画法多了一个参数,cornerRadius
    cornerRadius它是矩形的圆角半径.
    通过圆角矩形可以画一个圆.当矩形是正方形的时候,把圆角半径设为宽度的一半,就是一个圆.
    bezierPathWithRoundedRect:CGRectMake(10, 100, 50, 50) cornerRadius:10

 7.如果画椭圆,圆?

    画椭圆的方法为:
    前两个参数分别代码圆的圆心,后面两个参数分别代表圆的宽度,与高度.
    宽高都相等时,画的是一个正圆, 不相等时画的是一个椭圆
    bezierPathWithOvalInRect:CGRectMake(10, 100, 50, 50)

 8.如何利用UIKit封装的上下文进行画图?
    直接来个:[path stroke]就可以了.
    它底层的实现,就是获取上下文,拼接路径,把路径添加到上下文,渲染到View

 9.如何画圆弧?

     首先要确定圆才能确定圆弧,圆孤它就圆上的一个角度嘛

     Center:圆心
     radius:圆的半径
     startAngle:起始角度
     endAngle:终点角度
     clockwise:Yes顺时针,No逆时针

     注意:startAngle角度的位置是从圆的最右侧为0度.

     UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(125, 125)
                                                          radius:100
                                                          startAngle:0
                                                          endAngle:M_PI * 2
                                                          clockwise:YES];

 10.如果画扇形.
    画扇形的方法为:先画一个圆孤再添加一个一根线到圆心,然后关闭路径.
                 关闭路径就会自动从路径的终点到路径的起点封闭起下
    用填充的话,它会默认做一个封闭路径,从路径的终点到起点.
    [path fill];
 
时间: 2024-10-07 11:26:23

Quartz2D简介及基本线条绘制的相关文章

IOS Quartz2D简介

Quartz2D 简介( 后续会有相关应用) 第一部分 绘制直线 代码示例: - (void)drawRect:(CGRect)rect{ //获取图形上下文 CGContextRef cxContext = UIGraphicsGetCurrentContext(); //开始画图 //设置直线起点 CGContextMoveToPoint(cxContext, 0, 20); //设置直线中点 CGContextAddLineToPoint(cxContext, 100, 20); //渲染

关情纸尾-----Quartz2D简介

1.什么是Quartz2D? 他是一个二维的绘图引擎,同时支持iOS和Mac系统 2.Quartz2D能完成的工作? 画基本线条,绘制文字,图片,截图,自定义UIView. 3.Quartz2D在开发中的价值? 当我们的控件样式极其复杂时,可以把控件内部的结构给画出画,就是自定义控件. 4.什么是图形上下文,上下文的类型有哪些? 图形上下文是用来保存用户绘制的内容状态,并决定绘制到哪个地方的. 用户把绘制好的内容先保存到图形上下文, 然后根据选择的图形上下文的不同,绘制的内容显示到地方也不相同,

Canvas:橡皮筋线条绘制

Canvas:橡皮筋线条绘制 效果演示 实现要点 事件监听 [说明]: 在Canvas中检测鼠标事件是非常简单的,可以在canvas中添加一个事件监听器,当事件发生时,浏览器就会调用这个监听器. 我们可以使用绑定事件属性: canvas.onmousedown = function(e) { //..... } 此外,也可以使用更为通用的addEventListener()方法来注册监听器: canvas.addEventListener('mousedown',function(e){ //.

关情纸尾-----Quartz2D基本线条绘制

1.DrawRect方法作用?什么时候调用? DrawRect作用:专用在这个方法当中绘图的.只有在这个方法当中才能取得跟View相关联的上下文. DrawRect是系统自己调用的, 它是当View显示的时候自动调用. 2.画线(基本步骤描述) 2.1获取跟View相关联的上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); 2.2绘制路径 UIBezierPath *path = [UIBezierPath bezierPath]; 2.2

canvas(一) 基本线条绘制

var dom = document.getElementById('canvasItem'), ctx = dom.getContext('2d'); //坐标位置默认基于 浏览器窗口(0,0),此时居中,基于 当前坐标系 //x轴 向右,y轴向下 ctx.beginPath(); ctx.moveTo(100,350); //只是将坐标移到某点 ctx.lineTo(500,350); //将两个点之间连接起来 ctx.lineTo(500,200); ctx.lineTo(600,350)

iOS:quartz2D绘图(给图形绘制阴影)

quartz2D既可以绘制原始图形,也可以给原始图形绘制阴影. 绘制阴影时,需要的一些参数:上下文.阴影偏移量.阴影模糊系数 注意:在对绘制的图形做了绘制阴影处理前,需要先对上下文进行保存,绘制阴影成功后,还要对上下文进行复位.目的是为了不影响后面的绘图操作. 举例的阴影绘制实例如下: 1.自定义一个视图类DemoView,并将控制器的视图关联该自定义类,同时在该定义类中重写- (void)drawRect:(CGRect)rect,将绘制无阴影图形和绘制阴影图形的调用方法写在里面.     

HTML5 SVG图形轮廓线条绘制动画插件-vivus

Vivus是一款可以执行SVG路径动画的轻量级Javascript库.Vivus可以绘制SVG图形的外观.通过该svg路径动画插件,你可以使用同步或异步的方式来执行SVG图像路径的动画.Vivus提供各种不同的动画参数来让你定制你自己的SVG路径动画.类似的动画效果还有:html5 svg线条动态绘制文字轮廓边框动画 和 html5 svg线条动态绘制iphone边框动画效果. 在线演示:http://www.htmleaf.com/Demo/201501261280.html 下载地址:htt

Quartz2D简介

Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作:

iOS开发中 Quartz2D使用详细 简介

1> Quartz2D简介 *  PPT简介 什么是Quartz2D?二维的绘图引擎 什么是二维?平面 什么是引擎?经包装的函数库,方便开发者使用.也就是说苹果帮我们封装了一套绘图的函数库 同时支持iOS和Mac系统什么意思?用Quartz2D写的同一份代码,既可以运行在iphone上又可以运行在mac上,可以跨平台开发. 开发中比较常用的是截屏/裁剪/自定义UI控件. Quartz2D在iOS开发中的价值就是自定义UI控件. 图形上下文的数据类型和作用. 有多少种上下文. 自定义控件的步骤.