用图像和绘图旋转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)";