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 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>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值