Javascript 画布中'drawImage()'的参考点是什么?

Javascript 画布中'drawImage()'的参考点是什么?,javascript,canvas,Javascript,Canvas,这是一个关于函数的问题 var x = (i-j)*(img[0].height/2) + (ctx.canvas.width/2)-(img[0].width/2); var y = (i+j)*(img[0].height/4); abposx = x + offset_x; abposy = y + offset_y; ctx.drawImage(img[0], abposx, abposy); 此代码在画布中绘制带有偏移量的图像。我想知道的一件

这是一个关于函数的问题

    var x = (i-j)*(img[0].height/2) + (ctx.canvas.width/2)-(img[0].width/2); 
    var y = (i+j)*(img[0].height/4);
    abposx = x + offset_x;
    abposy = y + offset_y;
    ctx.drawImage(img[0], abposx, abposy);
此代码在画布中绘制带有偏移量的图像。我想知道的一件事是“drawImage”。。。它是将它放在图像的左角的位置还是中间


如果它确实使用了左角,我如何更改它以使其基于图像中心放置?

画布坐标系从左上角的
(0,0)
开始()

是的,
drawImage
将从左上角开始绘制

只需将图像中心偏移
width/2
height/2
,即可使用图像中心进行绘制

因此,如果你有一些中心点
p

drawImage(图像,p.x-image.width/2,p.y-image.height/2)


相当于从左上角绘图。

你说的中心点是什么意思?在没有p的情况下,我不能用图像的一半宽度和高度偏移图像吗?在这种情况下,您的中心点
p
abposx
abposy
组成。我想你和我实际上在说同样的话。我只是用了一个更一般的术语,其中
p
是画布上你希望图像中心的位置。因此abposx-image.width/2实际上是通过“图像宽度的一半与高度相同-因此它以这种方式居中?我想我明白了:)是的!这正是我的意思。