Fabricjs 宽度和 getWidth()

Fabricjs width and getWidth()

我有一个算法可以渲染具有宽度和高度的对象。但是当我使用 setWidth() 时,该对象实际上并没有得到那个宽度,它以某种方式得到了我给它的宽度的 x2 之类的东西。检查下面的代码:

    var width = canvas.getWidth();
    obj.setWidth(width);
    obj.setCoords();
    console.log(obj.getWidth());
    console.log(obj.width);

第一个日志宽度错误"x2",第二个日志宽度正确。

我一直在为类似的事情而苦苦挣扎,所以我测试了(使用 fabricjs 1.6.2)并发现 fabric.Rect rect.width 不等于 rect.getWidth()

rect.width 给出不考虑矩形的宽度 strokeWidth

rect.getWidth() 考虑矩形的 strokeWidth

另外请记住,默认情况下笔画一半在对象边缘内,一半在对象边缘外,因此例如 strokeWidth of 10 会将矩形的感知大小扩大 5 + 5 = 10 像素。

希望对您有所帮助。