HTML5 Canvas - 车轮旋转功能行为奇怪
HTML5 Canvas - Wheel spinning function acts strange
在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>
相关文章:
- 添加文字和评论功能更新Div
- JavaScript打印功能使日历停止工作
- 知道为什么我的旋转木马不会自动更改图片吗
- 较大引导转盘中的较小引导转盘-较小引导转盘上的旋转功能问题
- 如何使我的功能360度旋转并上下移动
- SVG3d:使用缓和功能控制路径的旋转
- 从对象旋转对象.带有自定义动画功能的trix.setrotationfromleuler
- 猫头鹰旋转木马 2 随机功能
- HTML5 Canvas - 车轮旋转功能行为奇怪
- 旋转功能在IE中不起作用
- 我可以使用旋转功能绕时钟移动一条线吗
- 对风速作出反应的旋转功能
- 如何使用猫头鹰旋转木马2触发后续功能
- 如何获取javascript"链接旋转器”;从身体到部门的功能
- 哪个JS框架最适合拖放、调整大小和旋转功能?
- 是否有可能覆盖sencha触摸旋转木马上一个和下一个功能
- 如何结合光滑的旋转木马功能
- 当附加项目时,我如何使我的旋转木马上的单击功能工作
- 原型UI-带有拖放功能的旋转木马
- 如何在jQuery中创建旋转缩略图功能