通过控件旋转组后,获取相对于画布的fabricjs中对象的位置

时间:2016-06-14 05:31:51

标签: javascript canvas fabricjs

我已经从SO帖子How to get the canvas-relative position of an object that is in a group?中找到了如何获得坐标。当小组缩放时,我设法做了一些实验来获得坐标。

x = object.left * object.group.scaleX + object.group.left +(object.group.width / 2)* object.group.scaleX;

y = object.top * object.group.scaleY + object.group.top +(object.group.height / 2)* object.group.scaleY;

如何获得x& y当组也旋转时。我遇到过fabric.util.rotatePoint,但我真的不知道如何使用它。我希望有一个函数可以返回一个对象相对于画布的坐标,考虑到originX,originY,缩放,旋转等的位置。请帮忙。谢谢你的阅读。

1 个答案:

答案 0 :(得分:0)

我通过跟踪缩放和使用转换矩阵来解决问题。

var matrix = object.calcTransformMatrix();
x = matrix[4] // translation in X
y = matrix[5] // translation in Y

矩阵的第5和第6个值是按定义进行平移,但它也考虑了组内对象的旋转,缩放。我想找到对象的位置是在两个对象之间画一条线。我想在用户调整画布大小后再这样做。