如何在 html 5 画布上旋转单个对象?

2024-05-13

我试图弄清楚如何在 html 5 画布上旋转单个对象。

例如:http://screencast.com/t/NTQ5M2E3Mzct http://screencast.com/t/NTQ5M2E3Mzct- 我希望每一张卡都能以不同的角度旋转。

到目前为止,我所看到的只是演示旋转整个画布的方法的文章和示例。现在,我猜我必须旋转画布,绘制图像,然后将画布旋转回原始位置,然后再绘制第二个图像。如果是这样的话,请告诉我!我只是有一种感觉还有另一种方法。

有人有什么想法吗?


我在最近的一个项目中遇到了同样的问题(我把旋转的外星人踢得到处都是)。我只是使用了这个不起眼的函数,它做同样的事情,并且可以以与 ctx.rotate 相同的方式使用,但可以传递一个角度。对我来说效果很好。

function drawImageRot(img,x,y,width,height,deg){
    // Store the current context state (i.e. rotation, translation etc..)
    ctx.save()

    //Convert degrees to radian 
    var rad = deg * Math.PI / 180;

    //Set the origin to the center of the image
    ctx.translate(x + width / 2, y + height / 2);

    //Rotate the canvas around the origin
    ctx.rotate(rad);

    //draw the image    
    ctx.drawImage(img,width / 2 * (-1),height / 2 * (-1),width,height);

    // Restore canvas state as saved from above
    ctx.restore();
}

耶,我的第一个答案!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 html 5 画布上旋转单个对象? 的相关文章

  • ASP.NET 验证控件和 Javascript 确认框

    我有一个使用 NET 服务器端输入验证控件的页面 此页面还有一个 javascript 确认框 在提交表单时会触发该确认框 当前 当选择 提交 按钮时 会出现 javascript 确认框 一旦确认 就会触发 ASP NET 服务器端验证控
  • 平均分配固定大小容器的空间。 Flexbox 的案例?

    如何设计 HTML CSS 结构 将固定大小的容器水平分成三部分 第一部分的高度应与其内容需求一样高 第二部分和第三部分将共享剩余的空间五五十 无论它们的内容如何 如果其内容的大小超过此限制 则该部分应该是可滚动的 它的 HTML 部分很简
  • 保证金如何运作?

    我在下面提供了marginfix这是一个块级元素并且one and two也是块级的 但它们是浮动的 这就是为什么它们位于同一行布局的原因 但是marginfix也不浮动 块级元素应位于该元素下方 如下所示
  • 如何使用 Spring Boot 传输音频

    我想让用户能够播放声音 我的实现在 Firefox 上运行良好 在 Safari 上 不播放声音 我验证了音频控制可以在 Safari 中与其他网站一起使用 所以 我认为我必须更改控制器中的某些内容 控制器 RequestMapping v
  • 在已标记的输入元素上使用“aria-labelledby”的目的是什么?

    许多 ARIA 演示网站使用以下代码
  • 如何将焦点设置在 BootStrap 中的第一个输入字段上? [复制]

    这个问题在这里已经有答案了 可能的重复 如何将焦点设置到独立于 id 的 HTML 表单中的第一个输入元素 https stackoverflow com questions 277544 how to set the focus to t
  • @fontface - 禅宗购物车中的 403 禁止错误

    我不确定这是否是发布此内容的正确位置 因为我不知道问题出在哪里 基本上 字体现在对我来说真的很痛苦 而且没有任何效果 我尝试从 google fonts 加载字体 但遇到了 IE 问题 所以我决定下载它们并自己提供服务 但现在它无法在任何浏
  • django 模板上的 vscode html 自动套用格式

    我喜欢 VSCode 的保存自动格式功能 直到它弄乱了我的模板代码 它错误地将我的 django 模板语法格式化为一行代码 有时非常长的一行 所以不用这段代码 for row in ABCDEFGH tr for col in 123456
  • NodeJS - 将相对路径转换为绝对路径

    In my 文件系统我的工作目录在这里 C temp a b c d 在 b bb 下有文件 tmp txt C temp a b bb tmp txt 如果我想从工作目录转到该文件 我将使用以下路径 bb tmp txt 如果该文件不存在
  • 文件缓存:查询字符串与上次修改时间?

    我正在研究缓存网站资源的方法 并注意到大多数与我类似的网站都使用查询字符串来覆盖缓存 例如 css style css v 124942823 后来 我注意到每当我保存 style css 文件时 最后修改的标头都会 更新 使得查询字符串变
  • JS:修改 JS 对象中的值/对

    我正在尝试找出修改对象的最佳方法 而无需三次写出类似的对象 所以我有这三个对象 var object1 start start end end type 1 var object2 start start end end type 2 va
  • 将默认搜索文本添加到搜索框 html

    我正在努力将 搜索 文本添加到搜索框 我正在努力实现 onfocus 消失文本 And onblur 重新出现文本 到目前为止 我已经实现了这一点 但我必须将其硬编码为 html eg
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • chrome 选项卡/窗口中的 window.open 行为

    我有一小段 javascript 旨在打开两个或更多选项卡 这在 FF 和 IE 中工作正常 但 chrome 会在新窗口而不是选项卡中打开第二个窗口 它不依赖于 url 因为我已经尝试过使用两个相同的 url 第一个在选项卡中打开 第二个
  • 如何捕获文本区域上的 Enter 按键而不是 Shift+Enter? [复制]

    这个问题在这里已经有答案了 I m doing it for texarea A function should be called when the user press Enter but nothing should be done
  • jQuery:向左滑动和向右滑动

    我见过slideUp and slideDown在 jQuery 中 左右滑动的功能 方式怎么样 您可以使用 jQuery UI 中的附加效果来做到这一点 详情请参阅此处 http docs jquery com UI Effects Sl
  • 在什么情况下,使用 HTTP/2 单独加载图像会比使用 HTTP/1.1 中的精灵一次加载所有图像慢?

    HTTP 2 使多路复用连接成为可能 从而消除了与服务器的多个连接的需要 通过单个连接 可以将许多单独的图像发送到客户端 这避免了将多个图像组合成一个并使用 CSS 将其分开的旧图像精灵模式 我很好奇精灵在 HTTP 2 世界中是否仍然会更
  • 使用严格模式编译指示时如何声明全局变量

    使用自调用函数来包装严格模式兼容代码 通常称为严格模式编译指示 被认为是一种很好的做法 function use strict Strict code here 我的问题是在这种情况下如何声明全局变量 我今天知道的三种替代方案 替代方案 1
  • 在引导程序中以编程方式更改选项卡窗格选项卡

    我使用的选项卡窗格定义为 ul class nav nav tabs li a href personal Personal Information a li li class active a href contact Contact a

随机推荐

  • 带有行号列的 Flex DataGrid

    我想扩展 DataGrid 组件 以便有一个 只读 列用于显示行号 就像您在电子表格中看到的那样 我看到这篇文章http www cflex net showFileDetails cfm ObjectID 735 http www cfl
  • “swank-clojure”到底是做什么的,我们有“swank-SOMETHING_ELSE”吗?

    我的肤浅理解是 swank clojure 使 M x slime connect 成为可能 我的意思是 它提供了与 clojure 服务器的连接 例如 lein swank 我的理解正确吗 如果不是 那swank的目的是什么 那么 是否有
  • Wpf ICollectionView 绑定项无法解析类型对象的属性

    我已经绑定了一个GridView与ICollectionView在 XAML 设计器中 属性是未知的 因为CollectionView已转化为类型Object并且无法访问实体属性 它运行良好 没有错误 但设计器将其显示为错误 如果我绑定到集
  • Node.js 中的回调是始终异步还是始终同步?或者它们可以“有时是一个,有时是另一个”?

    我正在尝试在 Node js 中制作一些东西 并且我 像其他所有开始学习 Node 的人一样 对它的异步性质有疑问 我搜索了一下 但找不到关于它的具体问题的答案 也许我只是没有搜索得很好 所以这里是 一般来说 node js 回调是保证如果
  • django - 设置中带有数据库 url 的 MySQL 严格模式

    我在设置中使用数据库 URL 字符串 例如 DATABASES default mysql root localhost 3306 mydb 当我迁移时 我收到此警告 MySQL Strict Mode is not set for dat
  • 在工作区中找不到文件

    我使用 Visual Studio 2010 professional 和 TFS 作为源代码控制 一切正常 早上我来打开我的解决方案 它以离线状态打开 我尝试上网 它说 Workspace for this solution could
  • 如何为 CUDA 内核选择网格和块尺寸?

    这是一个关于如何确定CUDA网格 块和线程大小的问题 这是对已发布问题的附加问题here https stackoverflow com a 5643838 1292251 通过此链接 talonmies 的答案包含一个代码片段 见下文 我
  • Qt - 如何粘合两个窗口并将它们移动在一起?

    就像qmmp Qt 音乐播放器ui设计一样 这两个或三个窗口实际上在同一个窗口中 因为只有一个dock图标 并且这些窗口可以一起移动并相互附着 我看了源码 好像有用QDockWidget 但我真的不知道如何获得它的细节 当您手动移动辅助窗口
  • Nginx 是否也缓冲来自客户端的 http 请求?

    我知道 Nginx 可以缓冲来自上游服务器的响应 我的问题是 Nginx 是否也缓冲来自客户端的 http 请求 我的意思是 如果 Nginx 从客户端收到 http 请求 它是否立即与上游服务器建立连接 或者它会在收到整个http请求后创
  • 禁用触发 TextChanged 事件

    I have textbox我正在更改其中的文本lostFocus被解雇了 但这也激发了textChanged事件 我正在处理该事件 但我不希望在这种情况下触发它 我如何在这里禁用它 UPDATE 这个想法与bool很好 但我有几个文本框
  • 调用 event.preventDefault() 后是否有一种[通用]方法来调用默认操作?

    这个问题是为了开发 jQuery 插件和其他独立的 JavaScript 片段 不需要修改其他脚本文件来实现兼容性 我们都知道 event preventDefault 将阻止默认事件 因此我们可以运行自定义函数 但是如果我们想简单地怎么办
  • 隐藏“隧道到”会话

    我尝试隐藏 Chrome 社交部分生成的会话 但在主机列中隐藏标记为 隧道 的流量不起作用 尽管我成功地根据主机名模式隐藏了另一个会话 if oSession HTTPMethodIs CONNECT oSession ui hide y
  • 在 Swift 中将 gif 保存到 iOS 照片库

    我正在尝试保存位于已使用 Regift 代码创建的临时文件中的 GIF 图像 Regift https github com matthewpalmer Regift https github com matthewpalmer Regif
  • php 验证整数[重复]

    这个问题在这里已经有答案了 我想知道为什么这不起作用 echo gettype GET id returns string if is int GET id echo Integer 如何验证从 GET POST 传递的数据是否为整数 Ca
  • 求任意节点到一个节点的最小公共路径

    我的问题如下 我有一个 backup 节点和其他节点 从这些节点 我需要生成一个到备份节点的最小公共路径 未加权和无向图 我不需要每次都需要解决方案 我如何知道我是否可以生成这条路径 我正在考虑将图分成一些子图并搜索最小的 subpath
  • 将jquery与nodejs一起使用时的基本错误

    我正在尝试在我的项目中使用一些jquery 当我尝试使用它时 我在复制的代码中遇到了错误 并且无法获得任何有关它的谷歌帮助 var jquery require jquery var jquery create TypeError Obje
  • 自定义DataGridView列值在失去焦点后消失

    我在 WinForms 中为我的项目创建了一个自定义 DataGridViewColumn 该控件呈现完美 但一旦我输入值并移动到另一个单元格 当我签入 CellEndEdit 时 该值就会消失并显示为 null 以下是代码 class N
  • mmap() 和锁定文件

    考虑以下代码片段 故意缺少错误处理 void foo const char path off t size int fd void ret fd open path O RDWR lockf fd F LOCK 0 ret mmap NUL
  • PushReplacement 或 PushAndRemoveUntil(Route 路线) => false 不工作

    基于页面的路由无法使用命令式 api 完成 而是提供一个没有相应页面的新列表到 Navigator pages 包 flutter src widgets navigator dart 断言失败 第 3075 行 pos 7 hasPage
  • 如何在 html 5 画布上旋转单个对象?

    我试图弄清楚如何在 html 5 画布上旋转单个对象 例如 http screencast com t NTQ5M2E3Mzct http screencast com t NTQ5M2E3Mzct 我希望每一张卡都能以不同的角度旋转 到目