Canvas:save()和restore()

来源:互联网 发布:离散数学 左孝凌 知乎 编辑:程序博客网 时间:2024/05/21 08:38

每个context都有一个绘图状态栈,包括以下部分:

  • 当前变换矩阵(transformation matrix)
  • 当前裁减区域(clipping region)
  • 下列属性的当前值: strokeStyle,fillStyle,globalAlpha,lineWidth,lineCap,lineJoin,miterLimit,shadowOffsetX,shadowOffsetY,shadowBlur,shadowColor,globalCompositeOperation,font,textAlign,textBaseLine

当前路径(path)和位图(bitmap)不属于绘图状态,当前路径是永久性的,只有beginPath()可以重置它,而当前位图是canvas的属性,不是context的。

  • context.save()将当前状态压入栈
  • context.restore()将当前状态弹出栈

由于canvas只有一个2d context,save和restore可以在很多场合得到应用,例如在变换中就特别常见。

0 0
原创粉丝点击