canvas雪景

<canvas id="mc" width="520" height="280" style="border:1px solid black" ></canvas >
      <script type="text/javascript" >
 var canvas = document.getElementById("mc");
var ctx = canvas.getContext("2d");
function createFlower(context,n,dx,dy,size,length){
	context.beginPath();
	context.moveTo(dx,dy+size);
	var dig = 2*Math.PI/n;
	for(var i=1;i<n+1;i++){
      var ctrlX = Math.sin((i-0.5)*dig)*length+dx;
      var ctrlY = Math.cos((i-0.5)*dig)*length+dy;
      var x = Math.sin(i*dig)*size+dx;
      var y = Math.cos(i*dig)*size+dy;
      context.quadraticCurveTo(ctrlX,ctrlY,x,y);
	}
	context.closePath();
};
snowPos = [
	{x:50,y:44,z:5},{x:140,y:35,z:3},
	{x:360,y:20,z:1},{x:250,y:50,z:2},
	{x:110,y:90,z:4},{x:310,y:85,z:2},
	{x:65,y:160,z:5},{x:205,y:130,z:5},
	{x:300,y:150,z:3},{x:260,y:210,z:1},
	{x:375,y:215,z:3},{x:155,y:230,z:2},
	{x:30,y:270,z:4},];
function fall(context){
	context.fillStyle = "#000";
	context.fillRect(0,0,420,280);
	context.fillStyle = "#fff";
		for(var i=0,len=snowPos.length;i<len;i++){
      		context.save();
      		context.translate(snowPos[i].x,snowPos[i].y);
      		context.rotate((Math.random()*6-3)*Math.PI/10);
      		snowPos[i].y += Math.random()*18;
      		if(snowPos[i].y >280){
      			snowPos[i].y=4;
      		}
      		createFlower(context,6,0,0,snowPos[i].z,8);
      		context.fill();
      		context.restore();
      	}
}
      setInterval("fall(ctx);",200);
      </script>


效果图:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值