在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/