我有一个渲染宽度和高度的对象的算法。但是,当我使用setWidth()
时,该对象实际上没有达到该宽度,它会以某种方式得到像我给它的宽度的x2。检查以下代码:
var width = canvas.getWidth();
obj.setWidth(width);
obj.setCoords();
console.log(obj.getWidth());
console.log(obj.width);
第一个日志的宽度错误" x2"第二个日志的宽度正确。
答案 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
像素。
希望这有帮助。