Javascript-HTML5 Canvas-旋转功能奇怪
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript-HTML5 Canvas-旋转功能奇怪,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1554字,纯文字阅读大概需要3分钟。
内容图文
![Javascript-HTML5 Canvas-旋转功能奇怪](/upload/InfoBanner/zyjiaocheng/664/f0ab118ab424475e8a0e365e8de9d80e.jpg)
在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方法,则可以始终将轮子定位在屏幕的中心.随着旋转,这肯定会起作用.
任何见解将受到欢迎.
解决方法:
您需要将旋转代码之外的值转换为宽度/高度的一半,以确保死点.
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>
内容总结
以上是互联网集市为您收集整理的Javascript-HTML5 Canvas-旋转功能奇怪全部内容,希望文章能够帮你解决Javascript-HTML5 Canvas-旋转功能奇怪所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。