Fabricjs width和getWidth()

时间:2015-11-19 19:28:35

标签: javascript html5-canvas fabricjs

我有一个渲染宽度和高度的对象的算法。但是,当我使用setWidth()时,该对象实际上没有达到该宽度,它会以某种方式得到像我给它的宽度的x2。检查以下代码:

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

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

1 个答案:

答案 0 :(得分:2)

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

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

rect.getWidth()考虑了rect的strokeWidth

还要记住,笔划默认在对象边缘内部绘制一半,在其外部一半,因此例如{10}的strokeWidth将矩形的感知大小放大5 + 5 = 10像素。

希望这有帮助。