javascript - 如何围绕中心旋转 HTML5 Canvas 上的图像

标签 javascript rotation html5-canvas

这实际上与其他 20 个问题完全相同,但我在任何地方都找不到正确的答案。我所需要的只是一种围绕图像中心旋转图像的方法。我已经尝试过(使用 StrokeRect 作为占位符):

ctx.translate(x, y);
ctx.rotate(-angle);
ctx.strokeRect(x, y, 150, 100);
ctx.rotate(angle);
ctx.translate(-x, -y);

我对此尝试了数十种变体,并查看了有关该主题的每个 StackOverflow 帖子,没有任何函数可以绘制在其中心旋转一定量的图像。这就是我想要的。

最佳答案

您需要平移所需的中心加上图像大小的一半,旋转,然后平移回图像大小的一半。否则你就在拐 Angular 处旋转。我使用保存和恢复而不是在绘制后旋转和平移回来,因为这样更快。

ctx.save();
ctx.translate(x + width/2, y + height/2);
ctx.rotate(-angle);
ctx.translate(-width/2, -height/2);
ctx.strokeRect(0, 0, 150, 100);
ctx.restore();

关于javascript - 如何围绕中心旋转 HTML5 Canvas 上的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54487721/

相关文章:

javascript - 带有 Zend 框架的 jqGrid (zfdatagrid)

javascript - 为 Azure API 管理创建的 SAS token 无效

java - 处理三角函数代码不起作用

java - 如何围绕自身旋转 2D 对象?

Android配置已更改

node.js - 将 Canvas 上播放的视频发送到 websocket

javascript - 为许多图像优化 Konva.js

javascript - 在一种情况下,输入文本不会更新与相同形式的另一种情况相同的 Angular 模型

javascript - 能否通过脚本删除HTML5 Canvas标签的 "getContext"属性?

javascript - 使用元素创建有针对性的 onclick 事件