Fabric js边界框定位问题

时间:2014-05-29 10:31:37

标签: javascript html5-canvas fabricjs

某些自定义路径的边框未正确定位。我正在使用fabricjs库请帮我如何删除这个bug。我使用以下代码生成路径。

var path = new fabric.Path('m138.31999,1l0,29.565c-75.13835,4.16908 -134.31995,48.17229 -134.31999,101.835c0,-9.67107 16.35202,-17.51999 36.5,-17.51999c20.14798,0 36.5,7.84892 36.5,17.51999c0,-9.67107 16.35202,-17.51999 36.5,-17.51999c9.59525,0 18.30284,1.83565 24.81999,4.745l0,144.17499c0,6.44742 -5.23262,11.68002 -11.67999,11.68002c-6.44734,0 -11.68,-5.2326 -11.68,-11.68002l0,-5.84l-23.36,0l0,5.84c0,19.34207 15.6979,35.04001 35.04,35.04001c19.34206,0 35.04001,-15.69794 35.04001,-35.04001l0,-144.17499c6.51714,-2.90935 15.22475,-4.745 24.81999,-4.745c20.14798,0 36.5,7.84892 36.5,17.51999c0,-9.67107 16.35202,-17.51999 36.5,-17.51999c20.14798,0 36.5,7.84892 36.5,17.51999c0,-53.66274 -59.18159,-97.66592 -134.31999,-101.835l0,-29.565l-23.36002,0z');
canvas.add(path);

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码将边界框移动到对象角落:

path.pathOffset.x = 0;
path.pathOffset.y = 0;

不幸的是,我找不到自动调整大小的方法。您可以通过path.widthpath.height属性更改边界框大小,但似乎Fabric不会为您计算它。也许您需要迭代路径points数组来查找X和Y的最小值/最大值,这样您就可以自己计算BB大小。

答案 1 :(得分:0)

这是一个带有一些beizer和arcs的库的错误。现在,从1.5.0开始,每个已知路径都被正确处理。