我使用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等在各种条件下,例如路径/画布被缩放,旋转,移动,放置在组内等。
答案 0 :(得分:0)
我不确定你要尝试的是什么,但initialize
方法不是更新方法,但是它是类的构造函数,你几乎覆盖了初始对象&#39 ; s路径。
如果您只想尝试移动原始创建的路径,则应使用left, top
对象的Path
属性,例如更新后的fiddler