javascript - Canvas 旋转 - JavaScript

标签 javascript canvas transform

如果有人有答案,可以帮我吗? 我有 2 张图像 - 背景类似于弧线和箭头。我需要将箭头图像移动到背景图像上,就像这是一个时钟收报机箭头。所以我需要:

  1. 旋转箭头使其与圆弧上的当前刻度平行
  2. 将箭头移动到下一个点

为此,我需要在 JavaScript 中使用 Canvas 对象及其转换方法 - 这将允许移动箭头并旋转它。

问题是:如何使用 canvas.transform 方法围绕圆弧旋转(和理想的移动)箭头?在这种情况下,哪些值以及它们之间的关系应该是什么:

contextData.clearRect (0, 0, contextData.canvas.width, contextData.canvas.height);
contextData.save ();
contextData.translate(indicatorData.width () / 2, indicatorData.height () / 2);
contextData.transform(1, 0, 0, 1, x, y);  // the question is HERE
contextData.drawImage(rotationArrow, -rotationArrow.width / 2, -rotationArrow.height / 2);
contextData.restore ();

提前致谢。

最佳答案

不要使用变换矩阵,而是使用辅助函数 .rotate

这样做可以让您围绕其中心旋转对象

contextData.save()
contextData.translate(indicatorData.width() / 2, indicatorData.height() / 2) // ASSUMING this  is the object you want to rotate around the center of and that it is being drawn at 0,0
contextData.rotate(1.57) // 1.57 radians = about 90 degrees
contextData.drawImage(rotationArrow, -rotationArrow.width / 2, -rotationArrow.height / 2);
contextData.restore()

关于javascript - Canvas 旋转 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4092999/

相关文章:

javascript - 如何触发回车键

javascript - three.js 定向光影

javascript - 检查按钮点击

javascript - 旋转图像和像素碰撞检测

通过在规则网格上采样的位移场进行图像变形

javascript - node.js webtorrent 通过磁力链接收集所有文件

javascript - 我想要在 Canvas 中画一个虚线 ctx.fillText (".",500,400)

javascript - 按字母在 Canvas 上绘制文本,以控制各个字母的 Alpha,同时与中心对齐

css - 背景图像上摇摇欲坠的 CSS 缩放变换

css - 如何使CSS变换: Scale perform more like Zoom