Javascript FabricJS:如何获取更新路径的位置

Javascript FabricJS:如何获取更新路径的位置,javascript,canvas,fabricjs,Javascript,Canvas,Fabricjs,我使用Fabric js创建了一些视觉元素。在我的项目中,路径正在更新。但问题是,路径的测量结果并不像预期的那样 参照 在示例中,路径最初是从画布左边框以50px的距离绘制的。然后我更改了path命令,使其向右移动100px 但在更新路径后,形状实际上位于距离左侧175px的位置。 此外,path元素的left属性没有更改 而且,无法理解所有这些属性及其关系, 左、上、scaleX、scaleY、高度、宽度、pathOffset、oCoords、originalState等,在各种条件下,如路径

我使用Fabric js创建了一些视觉元素。在我的项目中,路径正在更新。但问题是,路径的测量结果并不像预期的那样

参照

在示例中,路径最初是从画布左边框以50px的距离绘制的。然后我更改了path命令,使其向右移动100px

但在更新路径后,形状实际上位于距离左侧175px的位置。 此外,path元素的left属性没有更改

而且,无法理解所有这些属性及其关系,
左、上、scaleX、scaleY、高度、宽度、pathOffset、oCoords、originalState等,在各种条件下,如路径/画布被缩放、旋转、移动、放置在组内等。

我不确定您试图实现什么,但
initialize
方法不是更新方法,而是类的构造函数,实际上,您正在覆盖初始对象的路径


如果您只是想在原始创建的路径上移动,您应该使用
路径
对象的
左上方
属性,如此更新的此链接很好地描述了您的困惑。@HarshMakani,我已经浏览了链接,但我无法理解为什么路径在更新后又移动了25个像素。不确定我是否遗漏了什么。
var canvas = new fabric.Canvas('c', {width: 400, height: 400});

var line = new fabric.Path('M,50,50,L,50,150,150,150,150,50,Z', {            
    fill: 'blue'

});

line.setCoords();

// During update
line.initialize('M,150,50,L,150,150,300,150,300,50,Z')
line.setCoords();
canvas.renderAll();