有没有办法在画布上缩放绘图元素?我正在创建一个应用程序,然后用户可以在画布上放置点,但是当我尝试调整浏览器窗口的大小时,所有元素都消失了。
我最初的尝试是计算调整大小前后的屏幕差异。得到百分比后,我只是将比例尺放在画布上,并将第一次绘制时保存的坐标放置在画布上,但仍然不起作用,如果点出现在画布上,则是在画布上没有缩放的同一个地方。有人可以给我一点思路吗?
private calculateCanvasScreenDifference(previousSize, guestScreen) {
return ((controlScreen - currentSize) * 100) / controlScreen;
}
let difWidthPercent = Math.abs(this.calculateCanvasScreenDifference(canvasPreviousWidth, canvasWidth) * 0.01);
let difHeightPercent = Math.abs(this.calculateCanvasScreenDifference(canvasPreviousHeight, canvasHeight) * 0.01);
let scaleX = ((Math.abs(difWidthPercent) <= 1) ? 1.00 - difWidthPercent : difWidthPercent - 1.00);
let scaleY = ((Math.abs(difHeightPercent) <= 1) ? 1.00 - difHeightPercent : difHeightPercent - 1.00);
this.cx.scale(Number(scaleX), Number(scaleY));
...
...
// then start recreating the drawing that was previous saved on an array of object(x, y values)
this.cx.beginPath();
this.cx.arc(coord.x, coord.y, 7, 0, Math.PI * 2, true);
this.cx.stroke();
胡子哥哥
相关分类