Javascript 画布上的SVG路径位置

Javascript 画布上的SVG路径位置,javascript,html,canvas,svg,fabricjs,Javascript,Html,Canvas,Svg,Fabricjs,我有一条像贝娄一样简单的路。据我所知,它应该贴在画布的左上角。但我把它放在中间。因此,我正在渲染的所有路径似乎都从其原始位置偏移了。我是否遗漏了一些非常明显的东西?我使用fabric.js进行所有画布操作。任何线索都非常感谢 path1=newfabric.Path('m0l300100l200300z')尽管指出: 所有对象(包括组)的左/上角值对应于对象的中心,并且相对于画布的左/上角。基于中心的原点是默认的,但可以通过对象的“原点/原点”特性对其进行更改 这不是问题所在。因为路径也不总是正

我有一条像贝娄一样简单的路。据我所知,它应该贴在画布的左上角。但我把它放在中间。因此,我正在渲染的所有路径似乎都从其原始位置偏移了。我是否遗漏了一些非常明显的东西?我使用fabric.js进行所有画布操作。任何线索都非常感谢

path1=newfabric.Path('m0l300100l200300z')

尽管指出:

所有对象(包括组)的左/上角值对应于对象的中心,并且相对于画布的左/上角。基于中心的原点是默认的,但可以通过对象的“原点/原点”特性对其进行更改

这不是问题所在。因为路径也不总是正确居中

问题在于
路径
s:的定位中存在错误

该错误修复已经完成,但不幸的是,这还不是他们最新版本(1.4.11)的一部分。所以我认为你有两个选择:

  • 将您的Fabric版本升级到。(即未发布代码:可能不稳定)
  • 解决它
  • 要解决此问题,您可以将
    左侧
    顶部
    原始
    原始设置为零

    例如:

    var path1 = new fabric.Path('M -100 0 L 50 0 L 100 100 z');
    path1.set({ left: 0, top: 0 });
    
    或:


    您可以在这里测试代码:

    谢谢!这就解释了一切
    var path1 = new fabric.Path('M -100 0 L 50 0 L 100 100 z', {originX: 0, originY: 0});