我在fabricJs中有一个Text。我上下左右。 这会将aCoords正确设置为这些值。 然而oCoords不匹配。并且文本不会显示在正确的位置。
我怀疑我需要以某种方式设置oCoords。因此,文本显示在画布上的右侧像素坐标(顶部和左侧)。
答案 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)在那一点设置对象。