FabricJS调整其中的组和对象

时间:2018-03-08 04:36:37

标签: fabricjs

我需要以编程方式调整组的大小,并且它包含在结构画布上的元素。

默认情况下,fabric会将缩放应用于对象。我可以通过使用scalex& amp; scaley计算新的高度和宽度,然后我将它们设置回1.这对于组工作正常,但我无法弄清楚如何为该组中包含的对象设置新的大小。

EG。在调整大小之前: Before resize 调整大小后:

After resize

我的(打字稿)代码如下:

redraw() {

  this.shapeGroup.set({
    scaleX: 1,
    scaleY: 1,
    left: this.shape.origin.x,
    top: this.shape.origin.y,
    width: this.shape.extent.width + this.shape.line.lineWidth,
    height: this.shape.extent.height + this.shape.line.lineWidth,
    dirty: true
  });
  // const ac = this.shapeGroup.calcCoords();

  this.shapeElement.set({
    rx: this.shape.cornerRadius,
    ry: this.shape.cornerRadius,
    width: this.shape.extent.width,
    height: this.shape.extent.height,
    dirty: true
  });
  // this.shapeElement.setCoords(ac);

  if (this.shape.text) {
    this.textElement.set({
      width: this.shapeElement.width - (this.cornerRadius * 2),
      height: this.shapeElement.height - (this.cornerRadius * 2)
    });
  }

  this.canvas.fabric.renderAll();
}

(this.shape是对象的基础模型,由组中的一个或多个结构对象表示。)

有没有人成功做过这样的事情?

1 个答案:

答案 0 :(得分:0)

我使用了类似的代码来调整组项目的大小,所以这可能会引导您找到解决方案。

X::X(int arg)
: i(arg)
{
}