save()

保存当前上下文状态

  ctx.save()

测验

先save(),然后改变原点到(20,30)再旋转30度,画一个矩形,再restore(),画一个矩形

作用就是保存当前的绘画上下文状态,然后再还原这个状态.例如,为了画一处特点的图像,需要修改原点或角度(状态),

等画完后再调整回来.这时就需要使用save()和restore().

所谓状态,可认为是设定的一系列属性,例如坐标点,角度,样式等等.

设定这些状态一般是为了让绘画更容易,由于状态较多,不太可能再一一还原.所以save()方法保存原始状态,绘画之后再restore()回复原状态.

<<H5核心技术图形动画与游戏开发(David Geary)>> 第8~9页

嵌套调用save()和restore() 绘图环境的save()方法会将当前的绘图环境压入堆栈顶部.对应的restore()方法则会从堆栈顶部弹出一组状态信息,并据此恢复当前绘图环境的各个状态.

canvas状态包括了当前坐标变换信息,剪辑区域以及所有canvas绘图环境对象的属性,包括strokeStyle,fillStyleglobalCompositeOperation

canvas状态并不包括当前的路径或位图.只能通过beginPath来重置路径