Javascript缩放(x,y)方法不';不能在画布上使用负参数

Javascript缩放(x,y)方法不';不能在画布上使用负参数,javascript,canvas,scale,drawimage,Javascript,Canvas,Scale,Drawimage,我正在尝试使用scale()方法翻转图像。 我有以下代码: ctx.save(); ctx.scale(-1, 1); ctx.drawImage(Img, 0, 0, 100, 100); ctx.restore(); 当我在scale参数或任何其他实数中输入1,1时,scale函数工作正常。但一旦我设置了一个负参数,比如-1(水平翻转图像),图像就不会绘制了。代码位于设置间隔为12 fps的函数中。我到处找了,但似乎找不到解决办法。如有任何帮助或建议,将不胜感激。谢谢 正如markE所

我正在尝试使用scale()方法翻转图像。 我有以下代码:

ctx.save();
ctx.scale(-1, 1);

ctx.drawImage(Img, 0, 0, 100, 100);

ctx.restore();

当我在scale参数或任何其他实数中输入1,1时,scale函数工作正常。但一旦我设置了一个负参数,比如-1(水平翻转图像),图像就不会绘制了。代码位于设置间隔为12 fps的函数中。我到处找了,但似乎找不到解决办法。如有任何帮助或建议,将不胜感激。谢谢

正如markE所说,无论何时缩放、旋转或变换画布,所使用的坐标都会对画布变换中的变化做出反应—在您的情况下,会将图像从画布上发送出去。为了将图像翻转到位,应该考虑使用图像宽度作为第一参数:
ctx.save();

//The scale will flip the whole canvas, and will move the image 
//to the left (by the image width size)
ctx.scale(-1, 1);

//Using translate to move the image back to it's original origin
ctx.translate(Img.width, 0)

ctx.drawImage(Img, 0, 0, 100, 100);

ctx.restore();

:)正在从画布上绘制翻转的图像。重置drawImage中的x,y,以便将图像拉回到画布上。啊,因此图像坐标被转移到负维度:O现在很有魅力,非常感谢!