【问题标题】:Get position of object in a group in fabricjs relative to canvas after rotation of group via controls通过控件旋转组后,获取fabricjs中组中对象相对于画布的位置
【发布时间】:2016-10-14 16:37:13
【问题描述】:

我已经从 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、缩放、旋转等的位置。请帮忙。感谢阅读。

【问题讨论】:

  • 你是什么意思bu x和y?顶部和左侧?
  • 调查transformation matrix。您可以将平移、缩放、旋转等转换应用到矩阵中,然后使用矩阵获取画布相对点。
  • AndreaBogazzi:是的。
  • markE,谢谢你会检查这个。

标签: javascript canvas fabricjs


【解决方案1】:

我通过跟踪缩放和使用变换矩阵解决了这个问题。

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

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

【讨论】:

    猜你喜欢
    • 2015-07-01
    • 2016-12-21
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多