html5学习-万花筒

今天继续放上学习时候写的实例之一:万花筒。(主要联系html5的矩阵变换)

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>无标题文档</title>
 6 <style type="text/css">
 7 *{ padding:0; margin:0}
 8 #can{ background:#EBEBEB}
 9 
10 </style>
11 
12 </head>
13 <body>
14  <canvas id="can" width="900" height="900"></canvas>
15 
16 </body>
17 
18 <script>
19 
20  var canid=document.getElementById("can");
21  var can=canid.getContext("2d");
22   var arr=[];
23  can.translate(400,350);
24  setTim();
25  function  setTim(){
26 
27      var timer=setInterval(function(){
28         
29             can.clearRect(0,0,900,900);
30         for(var i=0;i<arr.length;i++){
31 
32                can.save();
33                 //can.translate(200,200);
34                 
35                 can.rotate(arr[i].x*Math.PI/180);
36                 
37                 can.fillStyle=arr[i].c;
38                 can.fillRect(arr[i].y,arr[i].y,arr[i].z,arr[i].z);
39                 can.stroke(); 
40                 can.restore();
41             
42         }
43 
44     },60);
45       
46      
47 }
48 
49 
50 setInterval(function(){
51          var color="rgb("+parseInt(Math.random()*255)+","+parseInt(Math.random()*255)+","+parseInt(Math.random()*255)+")";
52          arr.push({x:0,y:150,z:50,c:color}); 
53          
54  },50);
55 
56 setInterval(function(){
57 
58     
59     for(var i=0;i<arr.length;i++){
60     
61         if(arr[i].y<=0){
62            arr.splice(i,1);    
63             continue;
64         }
65         arr[i].x=arr[i].x+3;
66        arr[i].y=arr[i].y-0.3
67        arr[i].z=arr[i].z-0.1;
68 
69     
70     }
71     
72  
73  
74 },60);
75 
76 
77  
78 </script>
79 
80 
81 </html>

 

转载于:https://www.cnblogs.com/chaoming/p/3414461.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值