【发布时间】:2020-01-19 16:03:32
【问题描述】:
在下面的代码中,我在中心画了一个圆,但是因为它是缩放的,所以圆在右下角!
var canvas = document.getElementById('mycanvas');
context = canvas.getContext("2d");
context.canvas.width = 400;
context.canvas.height = 200;
context.clearRect(0, 0, context.canvas.width, context.canvas.height); // Clears the canvas
var scale = 2;
context.scale(scale, scale);
context.beginPath();
context.fillStyle = "#ff2626"; // Red color
context.arc(context.canvas.width / 2, context.canvas.height / 2, 10, 0, Math.PI * 2); //center
context.fill();
context.closePath();
canvas {
border: solid 1px #ccc;
}
<HTML>
<body>
<canvas id="mycanvas"></canvas>
</body>
</HTML>
您可能知道,画布的宽度和高度与其中的内容无关,尤其是在缩放时。换句话说,当您使用context.scale(scale_x, scale_y); 缩放画布时,它将缩放画布内的所有形状。我想知道,有什么办法可以得到画布像素范围?
当画布被缩放时,我想知道左右边缘的 X 和上下边缘的 Y。
【问题讨论】:
-
既然您按 2 缩放,您是否尝试过考虑比例来居中?像 (width*scale)/2 一样获得缩放中心?试试让我知道!
-
@MadeInDreams 我真的知道如何使用 scale 属性集中它,但问题是我发现 X 和 Y 在缩放的画布中会发生变化。说来话长,但我真的需要画布的角落,而不是中心。
标签: javascript html canvas