2015-11-19 94 views
0

我有一个算法,呈现一个对象的宽度和高度。但是当我使用setWidth()这个对象实际上并没有达到那个宽度时,它会以某种方式获得像我给它的宽度的x2。检查下面的代码:Fabricjs的宽度和getWidth()

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

第一个日志有错误的宽度“x2”,第二个日志有正确的宽度。

+0

对象是一个圆圈吗?你可以通过一个半径。 – Harangue

+0

对象实际上是组。 –

回答

2

我一直在努力尝试类似的东西,所以我测试过(使用fabricjs 1.6.2),发现了fabric.Rect(=也可能与其他对象类型),rect.width不相等到rect.getWidth():

rect.width给人不考虑矩形的strokeWidth

rect.getWidth()宽度考虑矩形的strokeWidth

还记得行程由内部默认一半漆成物体的边缘和其一半以外的区域,例如10的strokeWidth将rect的感知大小放大5 + 5 = 10像素。

希望这会有所帮助。