Fabric js边界框定位问题



某些自定义路径的边界框没有正确定位。我正在使用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);

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

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

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

这是库的一个bug,带有一些bezizer和arc。现在,从1.5.0开始,每个已知的路径都被正确处理了。

最新更新