如何在不缩放多边形的情况下调整“基于点”的多边形或其他Fabricjs实体的大小?
缩放增加了对象的strokeWidth,我想重写此行为。
我用这种方式做了矩形:
/** Resize instead of scaling example */
this.on({
'scaling': function(e) {
var obj = this;
obj.width = obj.scaleX * obj.width;
obj.height = obj.scaleY * obj.height;
obj.scaleX = 1;
obj.scaleY = 1;
}
});
椭圆的示例:
this.on({
'scaling': function(e) {
var obj = this;
obj.width = obj.scaleX * obj.width;
obj.height = obj.scaleY * obj.height;
obj.ry = obj.ry * obj.scaleY;
obj.rx = obj.rx * obj.scaleX;
obj.scaleX = 1;
obj.scaleY = 1;
}
});
我的问题不同,因为用户可以手动编辑在画布上绘制的对象属性。
例如,如果我绘制多边形并应用scaleRatio为2,如果我将strokewidth值设置为1,则fabric将在我的多边形上呈现1 * scaleRatio边框。
这就是我正在寻找覆盖尺度行为的原因,我正在为fabric.Rect或fabric.Ellipse做一个真正的“重绘”行为。
从Fabric.js版本2.7.0开始,现在有一个strokeUniform属性,在启用时,可以防止笔划宽度受到对象缩放值的影响。
obj.set('strokeUniform', true);