您好,登录后才能下订单哦!
本篇内容介绍了“如何实现HTML5 Canvas旋转动画”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
效果图:
方法一:
代码如下:
<!DOCTYPE HTML> 
  <html> 
  <body> 
  <canvas id="myCanvas" width="500" height="500">your browser does not support the canvas tag</canvas> 
  <script type="text/javascript"> 
  var deg = 0; 
  var r = 30; 
  var rl = 100; 
  function drawTaiji() { 
  var canvas = document.getElementById('myCanvas'); 
  var context = canvas.getContext('2d'); 
  var colorA = "rgb(0, 0, 0)"; 
  var colorB = "red"; 
  
  var px =Math.sin(deg)*r; 
  var py =Math.cos(deg)*r; 
  context.clearRect(0, 0, 300, 300); 
  context.beginPath(); 
  context.fillStyle = colorA; 
  context.arc(rl, rl, 60, 0.5 * Math.PI +deg, 1.5 * Math.PI +deg, true); 
  context.closePath(); 
  context.fill(); 
  context.fillStyle = colorB; 
  context.beginPath(); 
  context.arc(rl, rl, 60, 1.5* Math.PI +deg, 0.5 * Math.PI +deg, true); 
  context.closePath(); 
  context.fill(); 
  context.fillStyle = colorB; 
  context.beginPath(); 
  context.arc(rl+px, rl-py, 30, 0.5 * Math.PI + deg, 1.5 * Math.PI + deg, true); 
  context.closePath(); 
  context.fill(); 
  context.fillStyle = colorA; 
  context.beginPath(); 
  context.arc(rl-px, rl+py, 30, 1.5 * Math.PI + deg, 0.5 * Math.PI + deg, true); 
  context.closePath(); 
  context.fill(); 
  context.fillStyle = colorA; 
  context.beginPath(); 
  context.arc(rl+px, rl-py, 8, 0, 2 * Math.PI, true); 
  context.closePath(); 
  context.fill(); 
  context.fillStyle = colorB; 
  context.beginPath(); 
  context.arc(rl-px, rl+py, 8, 0, 2 * Math.PI, true); 
  context.closePath(); 
  context.fill(); 
  deg +=0.1; 
  } 
  setInterval(drawTaiji, 100);
  </script> </p>
<p></body> 
  </html>
方法二:
代码如下:
 <!DOCTYPE HTML> 
  <html> 
  <body> 
  <canvas id="myCanvas" width="500" height="500" >your browser does not support the canvas tag </canvas> 
  <script type="text/javascript"> 
  var canvas = document.getElementById('myCanvas'); 
  var ctx = canvas.getContext("2d"); 
  var angle = 0; 
  var count = 360; 
  var clrA = '#000'; 
  var clrB = 'red'; 
  
  function taiji(x, y, radius, angle, wise) { 
  angleangle = angle || 0; 
  wisewise = wise ? 1 : -1; 
  ctx.save(); 
  ctx.translate(x, y); 
  ctx.rotate(angle); 
  ctx.fillStyle = clrA; 
  ctx.beginPath(); 
  ctx.arc(0, 0, radius, 0, Math.PI, true); 
  ctx.fill(); 
  ctx.beginPath(); 
  ctx.fillStyle = clrB; 
  ctx.arc(0, 0, radius, 0, Math.PI, false); 
  ctx.fill(); 
  ctx.fillStyle = clrB; 
  ctx.beginPath(); 
  ctx.arc(wise * -0.5 * radius, 0, radius / 2, 0, Math.PI * 2, true); 
  ctx.fill(); 
  ctx.beginPath(); 
  ctx.fillStyle = clrA; 
  ctx.arc(wise * +0.5 * radius, 0, radius / 2, 0, Math.PI * 2, false); 
  ctx.arc(wise * -0.5 * radius, 0, radius / 10, 0, Math.PI * 2, true); 
  ctx.fill(); 
  ctx.beginPath(); 
  ctx.fillStyle = clrB; 
  ctx.arc(wise * +0.5 * radius, 0, radius / 10, 0, Math.PI * 2, true); 
  ctx.fill(); 
  ctx.restore(); 
  } 
  
  loop = setInterval(function () { 
  beginTag = true; 
  ctx.clearRect(0, 0, canvas.width, canvas.height); 
  taiji(200, 200, 50, Math.PI * (angle / count) * 2, true); 
  //taiji(350, 350, 50, Math.PI * ((count - angle) / count) * 2, false); 
  angle = (angle + 5) % count; 
  }, 50); 
  </script> </p>
<p></body> 
  </html>
“如何实现HTML5 Canvas旋转动画”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。