ткань JS - как рассчитать площадь после масштабирования? - PullRequest
0 голосов
/ 09 января 2019

Мне нужно вычислить площадь круга после масштабирования, вот коды, которые я использую для его вычисления -

function calculateArea(obj){
        switch (obj.type){
        case 'circle':
             alert((Math.PI*obj.radius*obj.radius).toFixed(2));
        break;
        case 'rect':
            return obj.width*obj.height;
        break;
      }
    } 

Это работает нормально, если я просто создаю круг и нажимаю кнопку «Рассчитать площадь». Но если я изменю размер круга и затем вычисляю площадь, он все равно показывает старую область, которая была на момент ее создания.

Я нашел объект: масштабирование событие и получение ширины и высоты после масштабирования как -

canvas.on("object:scaling", function(e){
var obj = e.target
console.log(obj.width*obj.scaleX);
console.log(obj.height* e.target.scaleY);
}); 

но не знаете, как использовать эти значения для расчета обновленной площади, есть предложения?

1 Ответ

0 голосов
/ 09 января 2019

Просто используйте

getScaledWidth() → {Number}
Returns width of an object bounding box counting transformations before 2.0 it was named getWidth();

Использование этого метода всегда возвращает масштабированную ширину или высоту (с getScaledHeight()) в пикселях.

...