Измените ширину и размер вместо scaleX и scaleY в Konvajs - PullRequest
1 голос
/ 18 октября 2019

Я реализую функцию преобразования для простого прямоугольника, используя Konvajs, но он изменяет scaleX и scaleY формы, а не фактическую ширину и высоту элемента.

Какой подход был бы правильным дляизменить фактическую ширину и высоту фигуры?

1 Ответ

2 голосов
/ 18 октября 2019

Вы можете использовать transform или transformend события, чтобы применить масштаб к ширине и высоте и сбросить масштаб до 1.

const tr = new Konva.Transformer({
  node: shape,
  ignoreStroke: true
});
layer.add(tr);


shape.on('transform', () => {
  // adjust size to scale
  // and set minimal size
  shape.width(Math.max(5, shape.width() * shape.scaleX()));
  shape.height(Math.max(5, shape.height() * shape.scaleY()));
  // reset scale to 1
  shape.scaleX(1);
  shape.scaleY(1);
});

https://jsbin.com/kavisitato/1/edit?html,js,output

...