Javascript Fabric JS,如何调整画布,以便在缩放上添加对象时其坐标是正确的?

Javascript Fabric JS,如何调整画布,以便在缩放上添加对象时其坐标是正确的?,javascript,fabricjs,Javascript,Fabricjs,目前,我使用以下方法在拖动控制柄时克隆对象。这很好,但当我将缩放或平移添加到等式中时,它们与原始位置完全偏离目标。看小提琴的原作 似乎无法在fiddle上使用zoom,因此我不确定是否可以演示该问题,但缩放代码是: this.canvas.on('mouse:wheel', (opt) => { var e = opt.e; var newZoom = this.canvas.getZoom() + e.deltaY / 300; //get center var cent

目前,我使用以下方法在拖动控制柄时克隆对象。这很好,但当我将缩放或平移添加到等式中时,它们与原始位置完全偏离目标。看小提琴的原作

似乎无法在fiddle上使用zoom,因此我不确定是否可以演示该问题,但缩放代码是:

this.canvas.on('mouse:wheel', (opt) => {
  var e = opt.e;
  var newZoom = this.canvas.getZoom() + e.deltaY / 300;
  //get center
  var center = this.canvas.getCenter();
  if (newZoom >= this.minZoom && newZoom <= this.maxZoom) {
    //set zoom
    this.zoomLevel = newZoom;
    //set zoom on center
    this.canvas.zoomToPoint({x: center.left, y: center.top}, this.zoomLevel);

    var objects = this.canvas.getObjects();

    for (var i in objects) {
      objects[i].setCoords();
    }

    this.canvas.renderAll();
    this.canvas.calcOffset();
  }

  e.preventDefault();
  return false;
});
this.canvas.on('mouse:wheel',(opt)=>{
var e=选择e;
var newZoom=this.canvas.getZoom()+e.deltaY/300;
//居中
var center=this.canvas.getCenter();

如果(newZoom>=this.minZoom&&newZoom所以基本上你在缩放画布时遇到了一个问题。对象正在移位,如果我错了请纠正我?不,这是正确的,它们在缩放或平移时会移位就像指针一样,这只会在添加/克隆画布时发生实际上,当画布被缩放时,所有对象也会随之缩放gly.我看不到他们被取代。或者我没有完全理解这个问题。请详细说明。这是一把小提琴,用鼠标滚轮上的缩放来看看。当你选择对象时,它会将其位置记录到控制台上。我看到正确的结果,即使画布被缩放,也没有偏差。因此,基本上你面临着缩放画布的问题T正在移位,如果我错了,请纠正我?不,这是正确的,它们在缩放或平移时会移位就像指针一样,这只在添加/关闭画布时发生。实际上,当画布缩放时,所有对象也会相应地缩放。我看不到它们被移位。或者我没有完全理解问题。请详细说明。这里是fiddle使用鼠标滚轮上的缩放进行查看。当您选择对象时,它会将其位置记录到控制台。我看到正确的结果,即使画布被缩放,也不会出现偏差。