美文网首页
Quartz2D-上下文状态栈与上下文的矩阵操作

Quartz2D-上下文状态栈与上下文的矩阵操作

作者: Amy_qinbu | 来源:发表于2017-03-03 10:20 被阅读5次

上下文状态栈

上下文状态栈为内存中的一块区域,它用来保存前上下文当的状态.
我们获取的图层上下文当中其实两块区域,一个是存放添加的路径,一个是用来保存用户设置的状态,
这些状态包括线条的颜色,线宽等.
当我们把上下文的内容渲染到View上面的时候,
它会自动将设置的所有上下文状态运行到保存的路径上面显示到View上面.

如果想要有多种状态,可以先把路径渲染到View上面,
再从新添加路径.添加完路径之后,重新设置上下文的状态.
再把新设置的上下文状态渲染到View上面.

我们可以利用上下文状态栈的方式,在设置状态之前,把之前的状态保存到上下文状态栈里面.
下一次想要再使用之前的状态时, 可以从上下文状态当中取出之前保存的上下文状态.

1.如何把上下文状态保存到上下文状态栈?
CGContextSaveGState(ctx);
2.如何从上下文状态栈中取出上下文状态?
CGContextRestoreGState(ctx);

上下文的矩阵

上下文的矩阵操作其实就是修改上下文的形变,
主要有以下几种

平移
CGContextTranslateCTM(ctx, 100, 100);
旋转
CGContextRotateCTM(ctx, M_2_PI);
缩放
CGContextScaleCTM(ctx, 0.5, 0.5);
注意:上下文操作必须得要在添加路径之前去设置

相关文章

  • 图形上下文状态栈与矩阵操作

    图形上下文状态栈与矩阵操作 矩阵操作(关注核心代码即可) 图形上下文状态栈(关注核心代码即可)

  • Quartz2D-上下文状态栈与上下文的矩阵操作

    上下文状态栈 上下文状态栈为内存中的一块区域,它用来保存前上下文当的状态.我们获取的图层上下文当中其实两块区域,一...

  • 图形上下文状态栈、矩阵操作

    图形上下文状态栈:用来保存绘图的状态(颜色,线宽等等)。1、首先开启一个图形上下文2、开启一个路径设置起始点3、设...

  • Quartz2D之矩阵操作

    上下文的矩阵操作 平移 旋转 缩放

  • 变量函数提升与执行上下文

    变量与函数提升 作用域与执行上下文的区别 执行上下文 执行上下文栈 作用域 作用域链

  • 绘图步骤

    1. 获取上下文 2.描述路径 3.路径添加到上下文中 4.上下文内容渲染到view中 上下文状态栈

  • Quartz2D-2

    1.矩阵操作 1.1.平移 1.2.旋转 1.3.缩放 1.4.注意 2.图形上下文栈 2.1.通过绘图原理来理解...

  • 执行上下文(个人笔记)

    本文参考:javaScript执行上下文和执行上下文栈一篇文章看懂JS执行上下文什么是执行上下文?什么是调用栈? ...

  • 上下文状态栈

    上下文状态栈 需求:画一条横线,一条竖线 获取上下文在内存中开辟了一个上下文区域,分为存放路径、存放状态两个部分 ...

  • Coregraphic的使用姿势

    Coregraphic 很棒的blog 操作步骤 获取上下文 创建并设置路径 添加到上下文 设置上下文状态 绘制路...

网友评论

      本文标题: Quartz2D-上下文状态栈与上下文的矩阵操作

      本文链接:https://www.haomeiwen.com/subject/zaylgttx.html