【问题标题】:Redrawing bounding box border after object rotation with Fabric.js使用 Fabric.js 在对象旋转后重绘边界框边框
【发布时间】:2018-05-08 14:11:38
【问题描述】:

我正在使用 Fabric.js(版本 1.7.19)在画布上绘图。我有一个“旋转”按钮,可以将活动对象旋转 90 度。旋转工作正常,但对象边界框边框不会改变以反映旋转的对象,除了看起来很奇怪之外,这意味着我无法正确选择对象。

这是我的旋转对象函数。

rotateItem = (e) => {
  e.preventDefault();
  const currentAngle = this.state.activeItem.item(0).get('angle');
  this.state.activeItem.item(0).setAngle(currentAngle + 90).setCoords();
  fabricCanvas.renderAll();
}

【问题讨论】:

  • 是否可以发布一个可以重现问题的演示?

标签: javascript fabricjs


【解决方案1】:

我想通了。我在画布上添加了一个新的 fabric.Group,然后在我真正需要做的是旋转整个组时旋转组内的第一个项目(因此是 .item(0))。删除 .item(0) 解决了我的问题。

rotateItem = (e) => {
  e.preventDefault();
  const currentAngle = this.state.activeItem.get('angle');
  this.state.activeItem.setAngle(currentAngle + 90).setCoords();
  fabricCanvas.renderAll();
}

【讨论】:

  • 我遇到了类似的问题。你试过这个 group.addWithUpdate() 吗?这将强制组采取孩子的边界框
猜你喜欢
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 2015-12-27
  • 1970-01-01
  • 1970-01-01
  • 2021-08-25
  • 2020-05-26
  • 2019-07-28
相关资源
最近更新 更多