在FabricJS中调整多边形,折线和线的大小,而无需使用“缩放”功能

时间:2019-04-18 09:51:31

标签: javascript fabricjs

如何调整“基于点”的多边形或其他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那样使用真实的“重绘”行为来搜索比例行为的原因。

1 个答案:

答案 0 :(得分:1)

从Fabric.js 2.7.0版开始,现在有了strokeUniform属性,该属性在启用时可以防止笔划宽度受对象的比例值影响。

START   END
0   2019-01-01 11:00:00 2019-01-01 14:00:00
1   2019-01-01 15:00:00 2019-01-01 16:00:00
2   2019-01-01 18:00:00 2019-01-01 22:00:00
3   2019-01-01 23:00:00 2019-01-02 01:00:00