• JavaScript:使用cavas製作圖片時鐘


    /* cavas圖片時鐘
    * handImage={
    		secHand:"*.png",minHand:"*.png",hourHand:"*.png",dial:"*.png"
    	}
    *handImage設置時分秒和錶盤的圖片
    *handPositon:{
    		hourHand:{20,height:139,center:20},
    		minHand:{20,height:172,center:20},
    		secHand:{18,height:257,center:71}
    	}
    *handPositon設置時分秒指針的寬、長(高)和中心點的高度
    */
    function imgClock(canvas,handImage,handPositon) {
    	var ctx=canvas.getContext('2d');
    	var width=canvas.width;
    	var height=canvas.height;
    	var centerX=width/2;
    	var centerY=height/2;
    	var dial=new Image();
    	var hourHand=new Image();
    	var minHand=new Image();
    	var secHand=new Image();
    	dial.src=handImage.dial;
    	hourHand.src=handImage.hourHand;
    	minHand.src=handImage.minHand;
    	secHand.src=handImage.secHand;
    	hourHand.width=handPositon.hourHand.width;
    	hourHand.height=handPositon.hourHand.height;
    	hourHandCenter=handPositon.hourHand.center;
    	minHand.width=handPositon.minHand.width;
    	minHand.height=handPositon.minHand.height;
    	minHandCenter=handPositon.minHand.center;
    	secHand.width=handPositon.secHand.width;
    	secHand.height=handPositon.secHand.height;
    	secHandCenter=handPositon.secHand.center;
    	dial.onload=function(){
    		function drawClock(){
    			ctx.clearRect(0,0,canvas.width,canvas.height);
    			var now = new Date();
    			var sec = now.getSeconds();
    			var min = now.getMinutes();
    			var hour = now.getHours();
    			hour += min/60;
    			ctx.drawImage(dial,0,0,width,height);//繪製錶盤
    			
    			//時針設置
    			ctx.save();//存貯上一級(save之前)的狀態,入棧
    			ctx.translate(centerX,centerY);//向右、向下平移到鐘錶中心
    			ctx.rotate(hour*30*Math.PI/180);//旋轉角度
    			ctx.drawImage(hourHand,-hourHand.width/2,hourHandCenter-hourHand.height,hourHand.width,hourHand.height);
    			ctx.restore();//恢復到上一級(save之前)狀態,防止本次操作對後續操作有影響
    			
    			//分針設置
    			ctx.save();//重置
    			ctx.translate(centerX,centerY);
    			ctx.rotate(min*6*Math.PI/180);						
    			ctx.drawImage(minHand,-minHand.width/2,minHandCenter-minHand.height,minHand.width,minHand.height);
    			ctx.restore();
    			
    			//秒針設置
    			ctx.save();
    			ctx.translate(centerX,centerY);
    			ctx.rotate(sec*6*Math.PI/180);
    			ctx.drawImage(secHand,-secHand.width/2,secHandCenter-secHand.height,secHand.width,secHand.height);			
    			ctx.restore();						
    		}
    		drawClock();
    		setInterval(drawClock,500);
    	}
    }
    
  • 相关阅读:
    linux
    【转】三种地理参考信息模型:WMS,WFS,WCS
    Flex工程与Asp.net工程集成发布时若干注意事项
    招聘Asp.NET高级开发人员
    【转】2008'中国地理信息系统优秀工程公示
    推荐一本GIS的好书《空间数据库》
    集中推荐一些Map Projection方面资源
    收藏几篇虚拟化的文章
    征集“地图制图”WEB站点、BBS
    [转]NHibernate文章转载
  • 原文地址:https://www.cnblogs.com/mandongpiaoxue/p/10253449.html
Copyright © 2020-2023  润新知