【发布时间】:2015-07-01 23:52:10
【问题描述】:
通常,对象相对于画布的位置可以从它的.left 和.top 属性中获得,但如果对象在选择/组中,则这些属性相对于组。有没有办法让他们相对于画布的位置?
【问题讨论】:
-
这是您要找的吗? jsfiddle.net/uue3hcj6/3 正如你所说的它们相对于组,你可以使用组的左和上来找到画布上的绝对位置。
-
这似乎不适用于选择:jsfiddle.net/uue3hcj6/4
-
这一切都取决于为对象/组设置的原点。在第一个小提琴中,我将组原点设置为中心。这就是为什么我没有在计算中添加组宽度的 1/2(group.left 给了我它的中心到画布左侧的距离)。但默认情况下,原点设置为顶部/左侧。因此,对于选择(您的情况)或没有将原点设置为中心的组,group.left 是组左侧与画布左侧的距离。现在为什么我需要将组宽度的一半添加到计算中?这是因为 object.left 是从组中心到对象左侧的测量值。
-
这可能解释得更好:组的原点设置为中心:i.imgur.com/csLtv7U.png 与组的原点设置为顶部/左侧(默认):i.imgur.com/PY0JJfo.png
-
@SwapnilJain 感谢您的解释!我现在明白了,我之前没有看到“originX”是什么意思。如果您将此作为答案并 ping 我,我会将您的答案标记为解决方案
标签: javascript fabricjs