用图像和绘图旋转HtmlCanvas
Rotate Html Canvas with image and drawing
所以我有一个 canvas 背景图像,上面有用户定义的点/坐标。
我想旋转整个 canvas 图像和点以保持在完全相同的位置。
我该怎么做。
这就是我的
var canvas = document.getElementById("car");
canvas.width = 364;
canvas.height = 219;
canvas.style = "border:1px solid red";
var canvasContext = canvas.getContext("2d");
const image = "https://i.ibb.co/cYfp8SQ/sedan.jpg";
let canvasImg = new Image();
canvasImg.src = image;
canvasImg.onload = () => {
canvasContext.drawImage(canvasImg, 0, 0, canvas.width, canvas.height);
};
setTimeout(() => {
canvasContext.fillStyle = "red";
canvasContext.beginPath();
canvasContext.arc(110, 80, 5, 0, Math.PI * 2, true);
canvasContext.fill();
}, 200);
我已经阅读了很多关于使用 translate 和 rotate 进行旋转的文章,但所有这些文章要么是绘图,要么是图像,而不是两者。
有没有办法在保持坐标不变的情况下旋转这个canvas?
我做了一个fiddle参考
https://jsfiddle.net/heinrichcoetzee/sjcxdv08/2/
它目前的样子 ->
我想要的样子 ->
这是CSS:
canvas {
transform: rotateZ(90deg);
}
或者在 JS 中:
const canvas = document.getElementById("car");
canvas.style.border = "1px solid red";
canvas.style.transform = "rotateZ(90deg)";
所以我有一个 canvas 背景图像,上面有用户定义的点/坐标。
我想旋转整个 canvas 图像和点以保持在完全相同的位置。
我该怎么做。
这就是我的
var canvas = document.getElementById("car");
canvas.width = 364;
canvas.height = 219;
canvas.style = "border:1px solid red";
var canvasContext = canvas.getContext("2d");
const image = "https://i.ibb.co/cYfp8SQ/sedan.jpg";
let canvasImg = new Image();
canvasImg.src = image;
canvasImg.onload = () => {
canvasContext.drawImage(canvasImg, 0, 0, canvas.width, canvas.height);
};
setTimeout(() => {
canvasContext.fillStyle = "red";
canvasContext.beginPath();
canvasContext.arc(110, 80, 5, 0, Math.PI * 2, true);
canvasContext.fill();
}, 200);
我已经阅读了很多关于使用 translate 和 rotate 进行旋转的文章,但所有这些文章要么是绘图,要么是图像,而不是两者。
有没有办法在保持坐标不变的情况下旋转这个canvas?
我做了一个fiddle参考 https://jsfiddle.net/heinrichcoetzee/sjcxdv08/2/
它目前的样子 ->
我想要的样子 ->
这是CSS:
canvas {
transform: rotateZ(90deg);
}
或者在 JS 中:
const canvas = document.getElementById("car");
canvas.style.border = "1px solid red";
canvas.style.transform = "rotateZ(90deg)";