gpt4 book ai didi

javascript - 在 FabricJS 中调整多边形、折线、线条的大小而不使用 'scale'

转载 作者:行者123 更新时间:2023-12-01 01:04:52 25 4
gpt4 key购买 nike

如何调整多边形或其他“基于点”的 Fabricjs 实体的大小而不缩放它们?

缩放会增加对象的笔划宽度,我想覆盖此行为。

我是这样处理矩形的:

/** 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;
}
});

我的问题有所不同,因为用户可以手动编辑 Canvas 上绘制的对象属性。

例如,如果我绘制一个多边形并应用 2 的缩放比例,如果我将描边宽度值设置为 1,则 Fabric 将在我的多边形上渲染 1*scaleRatio 边框。

这就是我正在寻找通过真正的“重绘”行为来覆盖缩放行为的原因,就像我对 Fabric.Rect 或 Fabric.Ellipse 所做的那样。

最佳答案

从 Fabric.js 版本 2.7.0 开始,现在有一个 strokeUniform 属性,启用该属性后,可以防止笔划宽度受到对象缩放值的影响。

obj.set('strokeUniform', true);

关于javascript - 在 FabricJS 中调整多边形、折线、线条的大小而不使用 'scale',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55743486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com