HTML5 Canvas-旋转功能很奇怪

理查德·汉密尔顿

在HTML5画布中,我有一个要旋转的轮子,但是这个轮子的作用实在太疯狂了。它正在屏幕周围摆动,从屏幕中移出并再次进入屏幕。

var canvas = document.getElementById("my-canvas");
var ctx = canvas.getContext("2d");

var img = new Image();
img.src = "http://www.roulette30.com/wp-content/uploads/americanroulette.png";

ctx.drawImage(img, 70, 70, 200, 200);

function spinWheel() {
    ctx.clearRect(0, 0, canvas.width, canvas.height);
    ctx.translate(0, 0, canvas.width, canvas.height);
    ctx.rotate(1 * Math.PI / 180);
    ctx.drawImage(img, 70, 70, 200, 200);
}

setInterval(spinWheel, 0);
#my-canvas {
  border: 1px solid black;
}
<!--<img id="my-image" height="200" width="200" src="http://www.roulette30.com/wp-content/uploads/americanroulette.png">
-->
<canvas id="my-canvas" width="400" height="400"></canvas>

我确定如果调用此translate方法,则始终可以将轮子定位在屏幕中央。与一起rotate,这肯定行得通。

任何见解都将受到欢迎。

汤姆

您需要将旋转代码之外的值转换为宽度/高度的一半,以确保死点。

var canvas = document.getElementById("my-canvas");
var ctx = canvas.getContext("2d");

var img = new Image();
img.src = "http://www.roulette30.com/wp-content/uploads/americanroulette.png";

var speed = 1; // adding increases speed
var loop = true;

ctx.translate(canvas.width/2, canvas.height/2);

function spinWheel() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  ctx.rotate(speed * Math.PI / 180);
  ctx.drawImage(img, -(img.width/2), -(img.height/2));
  if (loop) requestAnimationFrame(spinWheel);
}

spinWheel();
#my-canvas {
  border: 1px solid black;
}
<canvas id="my-canvas" width="400" height="400"></canvas>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

HTML5 Canvas-旋转功能很奇怪

来自分类Dev

HTML5 canvas动画和旋转

来自分类Dev

html5 canvas中的旋转逻辑

来自分类Dev

HTML5 canvas动画和旋转

来自分类Dev

Knovajs / HTML5 Canvas - 旋转原点

来自分类Dev

在 HTML5 Canvas 中旋转对象

来自分类Dev

html5 canvas透明比例功能

来自分类Dev

Html5 canvas - 翻译功能异常

来自分类Dev

html5 canvas; 旋转的图像在即闪烁

来自分类Dev

html5 canvas; 旋转的图像在即闪烁

来自分类Dev

HTML5 Canvas 围绕中心旋转渐变

来自分类Dev

html5 canvas和javascript的奇怪行为

来自分类Dev

HTML5 canvas javascript

来自分类Dev

HTML5 canvas javascript

来自分类Dev

如何增加HTML5 canvas中JS对象的旋转角度?

来自分类Dev

应用旋转时,HTML5 canvas clip()在Chrome中不起作用

来自分类Dev

HTML5 Canvas:旋转后获取矩形坐标(相对于屏幕)

来自分类Dev

使用JavaScript三角函数缩放旋转的图像以填充HTML5 Canvas?

来自分类Dev

使用箭头键移动html5 canvas时在gameloop中旋转图像

来自分类Dev

Flash HTML5 canvas条件的音频。暂停和恢复功能

来自分类Dev

奇怪的HTML 5 Canvas抗锯齿

来自分类Dev

HTML5 Canvas文字交集

来自分类Dev

如何清除canvas html5?

来自分类Dev

HTML5 Canvas游戏渲染图

来自分类Dev

从html5 <canvas>创建视频流

来自分类Dev

HTML5 Canvas drawImage问题

来自分类Dev

HTML5 Canvas-fillRect()与rect()

来自分类Dev

语音气泡html5 canvas js

来自分类Dev

HTML5 Canvas:直接移至点