如何获取Fabric.js中当前视图的中心坐标?

How to get the center coordinates for current view in Fabric.js?

我正在开发一个图像加载系统,要使其在移动设备上运行,我需要获取当前视图的 canvas 中心坐标。 它应该 return 与我将鼠标悬停在中心的结果相同。

我试着询问 fabric js github,他们给了我这个: 但那个结果每次都让我恢复了一半的 canvas 高度和宽度。 谁能帮我理解为什么?

var myCenterCoordinates = fabric.util.transformPoint({
  x: canvas.width / 2,
  y: canvas.height / 2,
}, fabric.util.invertTransform(canvas.viewportTransform));

如果我将鼠标悬停在 canvas 的确切中心(我确实设置了鼠标位置),如果我调用 getcentercoordinates 函数,我应该会看到相同的结果(x 和 y)

编辑: fabric.util.invertTransform(canvas.viewportTransform)[4] 和 fabric.util.invertTransform(canvas.viewportTransform)[5] 为您提供当前视点左上角的当前 x 和 y 坐标,因此我们也许可以用那个 strong text

做点什么

我找到了答案:

var zoom=canvas.getZoom()
function CenterCoord(){
   return{
      x:fabric.util.invertTransform(canvas.viewportTransform)[4]+(canvas.width/zoom)/2,
      y:fabric.util.invertTransform(canvas.viewportTransform)[5]+(canvas.height/zoom)/2
   }
}

使用这个:

var centerX=CenterCoord().x
var centerY=CenterCoord().y