Как я могу изменить размеры полигонов или других объектов 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;
}
});
У меня другой вопрос, потому что пользователи могут редактировать свойства объекта, нарисованные на холсте вручную.
Например, если я рисую многоугольник и применяю scaleRatio, равное 2, если я устанавливаю значение штриховой ширины равным 1, ткань будет отображать границу масштаба 1 * масштаба на моем многоугольнике.
Вот почему я ищу переопределение поведения масштаба с реальным поведением "перерисовки", как я это сделал для fabric.Rect или fabric.Ellipse.