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

时间:2015-10-14 10:03:03

标签: javascript canvas fabricjs

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

Refrer to jsFiddle

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();

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

但是在更新路径后,形状实际上位于距左侧175px处。 此外,路径元素的left属性不会更改。

此外,无法了解所有这些属性及其关系, left,top,scaleX,scaleY,height,width,pathOffset,oCoords,originalState等在各种条件下,例如路径/画布被缩放,旋转,移动,放置在组内等。

1 个答案:

答案 0 :(得分:0)

我不确定你要尝试的是什么,但initialize方法不是更新方法,但是它是类的构造函数,你几乎覆盖了初始对象&#39 ; s路径。

如果您只想尝试移动原始创建的路径,则应使用left, top对象的Path属性,例如更新后的fiddler