如何在FabricJs中设置相对位置(oCoords)?

时间:2017-08-21 09:54:56

标签: fabricjs

我在fabricJs中有一个Text。我上下左右。 这会将aCoords正确设置为这些值。 然而oCoords不匹配。并且文本不会显示在正确的位置。

我怀疑我需要以某种方式设置oCoords。因此,文本显示在画布上的右侧像素坐标(顶部和左侧)。

1 个答案:

答案 0 :(得分:2)

aCoords和oCoords是两回事,不应该同步。

在你的评论中,你谈到了缩放画布。

“上”和“左”是2个绝对值,表示画布上对象的位置。当画布具有标识变换矩阵时,此位置与画布像素匹配。

如果应用缩放,则此坐标会发散。

要获得未缩放画布上缩放画布的像素300,100的位置,您需要应用一些基本数学。

1)获取应用于画布的变换

canvas.viewportTransform

2)颠倒它

var iM = fabric.util.invertTransform(canvas.viewportTransform)

3)将想要的点乘以该矩阵

var point = new fabric.Point(myX, myY);
var transformedPoint = fabric.util.transformPoint(point, iM)

4)在那一点设置对象。