【发布时间】:2021-09-13 11:30:28
【问题描述】:
我正在尝试实现一个功能,使画布上的每个对象的大小均等地缩小并将它们放在画布上(以便在画布周围添加一些空间/填充)
但是,一旦我定义了selection 变量,对象的位置就会完全改变,而不会在视觉上改变位置。大多数top 和left 属性变为负数,我发现它们的新位置代表它们与对象组中心的距离。
这会导致画布上的持久效果,当我调用selection.addWithUpdate() 时,边界框出现在同一个位置,但对象控件(调整大小和旋转点)仍然位于错误的位置。我尝试使用selection.setCoords() 重置控件,但没有效果。
当我遍历每个对象和 console.log obj.left 和 obj.top 时,我得到大部分为负值,如前所述,即对象控件的位置。
var selection = new fabric.ActiveSelection(canvas.getObjects(), { canvas: canvas });
selection.scaleToHeight(0.8)
selection.center();
canvas.renderAll()
selection.addWithUpdate()
selection.setCoords()
【问题讨论】:
-
请用最少的代码添加 Codesandbox 以复制问题
标签: javascript reactjs canvas fabricjs