我需要以编程方式调整组的大小,并且它包含在结构画布上的元素。
默认情况下,fabric会将缩放应用于对象。我可以通过使用scalex& amp; scaley计算新的高度和宽度,然后我将它们设置回1.这对于组工作正常,但我无法弄清楚如何为该组中包含的对象设置新的大小。
我的(打字稿)代码如下:
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是对象的基础模型,由组中的一个或多个结构对象表示。)
有没有人成功做过这样的事情?
答案 0 :(得分:0)
我使用了类似的代码来调整组项目的大小,所以这可能会引导您找到解决方案。
X::X(int arg)
: i(arg)
{
}