按绝对值旋转画布绘图上下文的任何方法
Any way to rotate canvas drawing context by an absolute value?
我确实有一个函数可以定期刷新画布元素(游戏类型的情况)。
其中一个绘制的对象应该能够旋转:
myObject = {};
...
myObject.radian = 0.75;
...
我现在面临的问题是,当我通过以下操作将这种旋转应用于绘图程序时:
ctx.moveTo(CANVAS_WIDTH / 2, CANVAS_HEIGHT / 2);
ctx.rotate(myObject.radian);
ctx.drawImage(...
它不设置旋转的绝对值,而是将其添加到处理最后一帧时使用的值中。如果我可以通过访问旧的旋转值来计算delta,这将不会有问题,但当我console.log(ctx)
时,它似乎没有任何旋转信息。
除了可以为我的对象设置旋转,而必须使用delta之外,还有什么方法可以做到这一点吗?谢谢
如http://sgdk2.enigmadream.com/ben/Mobile.html,您可以(而且据我所见,应该)使用上下文的保存和恢复功能将绘图功能括起来,这样您就可以相对于上下文的活动状态执行绘图,然后在完成后返回到预期状态。那么您就不会让上下文处于未知状态以进行其他操作。
XFrame.prototype.draw = function(ctx, x, y) {
ctx.save();
ctx.transform(this.m11, this.m12, this.m21, this.m22, this.dx+x, this.dy+y);
ctx.drawImage(this.imageSource, (this.cellIndex % this.graphicSheet.columns) * this.graphicSheet.cellWidth,
Math.floor(this.cellIndex / this.graphicSheet.columns) * this.graphicSheet.cellHeight,
this.graphicSheet.cellWidth, this.graphicSheet.cellHeight, 0, 0, this.graphicSheet.cellWidth, this.graphicSheet.cellHeight);
ctx.restore();
};
相关文章:
- 将函数的上下文应用于javascript变量
- 函数参数中的数据与指定变量之间的任何性能差异
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- jQuery中是否内置了任何字符串格式化函数
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- 有任何可能将facebook实时信使整合到一个网站中
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 使用JQuery的动态上下文菜单
- AJAX:$_GET不返回任何值
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 将事件处理程序绑定到任何可能的事件
- 在Highcharts中,我们可以通过任何方式在渲染图表之前获得plotWidth和plotHeight
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- document.styleSheets不返回任何内容
- 任何用于 JavaScript 执行上下文可视化的现有工具
- 按绝对值旋转画布绘图上下文的任何方法
- 是否有任何方法可以在firefox扩展的上下文菜单下获得单词
- 除了绑定之外,任何其他上下文解析的解决方案都在承诺中