我想知道如何将已经绘制在HTML5画布上的整个场景进行平移,例如向下平移5像素。我知道translate方法只是平移了画布的坐标系,但我想知道是否有一种方法可以平移已经绘制在画布上的整个场景。
你可以应用变换并调用drawImage将画布本身传递进去。
ctx.save();
ctx.translate(0, 5);
ctx.drawImage(canvas, 0, 0);
ctx.restore();
这样做时,原始内容仍将保留在下方。 根据您想要实现的效果,设置globalCompositeOperation可能会有所帮助。
但是很可能需要使用drawImage首先复制到第二个画布,清除当前画布,应用变换并从副本绘制。
除非你截屏并翻译。
然而,只需插入
context.translate(0, 5)// or your values
在你的绘图代码之前加上这个应该就可以了。
参考资料:MDN Canvas 教程(变换)