javascript - 如何按组获取对象的 Angular 、坐标和比例?

标签 javascript canvas fabricjs

在fabricjs中,对象的left,top,angle,scaleX和scaleY在组中和不在组中是不同的。当对象不在组中时,我可以根据canvas获取正确的属性。但是一旦这个对象在一个组中,我得到的左侧或顶部或 Angular 是基于组的。

如果我旋转一个组,该组的 Angular 发生了变化,但是当我使用group._objects[i].angle获取对象的 Angular 时, Angular 没有改变。

How to get the canvas-relative position of an object that is in a group? 这个问题解决了左上角的问题,但是如何按组获取 Angular 和比例? 谢谢阅读。

最佳答案

最近,fabricjs 对集团转型管理进行了彻底改革。 使用最新版本并尝试以下操作:

//object is your desired object inside the group.
var matrix = object.calcTransformMatrix(),
    options = fabric.util.qrDecompose(matrix);
//options will be an object with following properties.
/*
  options.translateX //left position
  options.translateY //top position
  options.scaleX
  options.scaleY
  options.skewX
  options.skewY
  options.angle // angle in degrees.
*/

此代码取自fabric.Group类中的函数realizeTransform

关于javascript - 如何按组获取对象的 Angular 、坐标和比例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34388625/

相关文章:

javascript - Fabricjs - 以编程方式选择对象以立即移动/拖动

fabricjs - 自定义 Canvas 上所有项目的控件

javascript - 如何禁用鼠标中键拖动选择?

javascript - Firefox Scratchpad 的 javascript 代码比标准网站 javascript 代码拥有更多权限?

c++ - 直接从 C++ 应用程序绘制到 WebGL Canvas

javascript - 如何克隆ImageData?

javascript - 带有手绘线条的 HTML5 Canvas

javascript - 无法通过后端身份验证获取聊天对话框 "Forbidden. Need user."错误

javascript - 如何使用 javascript/jquery 用标签包装元素的同级文本?

javascript - 无法从 View 调用 Controller 函数