context.save();
...
context.restore();
context.beginPath();
context.closePath();
context.beginPath()永远保存(或者说使用)的是当前的绘制样式状态,而context.save()保存的是某个时刻的绘制样式状态(那个时刻由你自己决定)。
如果你使用过ps,相当于把某个绘制样式状态保存了一个文件,在你需要的时候调用。而beginpath()使用的是目前ps面板上的绘制样式状态
context.beginPath(); context.closePath();是绘画的起点和闭合,context.beginPath();可以代替moveto,直接用lineto,context.closePath();会把图形闭合,translate会有叠加,save(),restore()可以解决。