使用canvas绘制一个圆形时钟-创新互联

使用canvas绘制一个圆形时钟?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

攸县网站建设公司创新互联,攸县网站设计制作,有大型网站制作公司丰富经验。已为攸县数千家提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的攸县做网站的公司定做!

代码如下:



 
 
 canvas clock
 
 div{
 text-align: center;
 margin-top: 250px;
 }
 #clock{
 border: 1px solid #ccc;
 }
 
 
 
 
   
   var dom=document.getElementById("clock");    var ctx=dom.getContext("2d"); var width=ctx.canvas.width; var heigth=ctx.canvas.height; var r=width/2; //描绘时分秒小数和小数点 function drawBackground(){  ctx.save();  ctx.translate(r,r); //中心原点位置  ctx.beginPath(); //起始位置  ctx.lineWidth=10;  //圆  ctx.arc(0,0,r-5,0,2*Math.PI,false);  ctx.stroke();  var hourNumbers=[3,4,5,6,7,8,9,10,11,12,1,2];  ctx.font="18px Arial";  ctx.textAlign="center";  ctx.textBaseline="middle";  hourNumbers.forEach(function(number,i){  var rad=2*Math.PI/12*i;  var x=Math.cos(rad)*(r-30);  var y=Math.sin(rad)*(r-30);  ctx.fillText(number,x,y);  });  for (var i=0;i<60;i++) {  var rad=2*Math.PI/60*i;  var x=Math.cos(rad)*(r-18);  var y=Math.sin(rad)*(r-18);  ctx.beginPath();  if(i%5===0){  ctx.fillStyle="#000";  ctx.arc(x,y,2,2*Math.PI,false);  }else{  ctx.fillStyle="#ccc";  ctx.arc(x,y,2,2*Math.PI,false);  }  ctx.fill();  } } //描绘时针 function drawHour(hour,minute){  ctx.save();  ctx.beginPath();  var rad=2*Math.PI / 12 * hour;  var mrad=2*Math.PI / 12 / 60 * minute;  ctx.rotate(rad + mrad);  ctx.lineWidth=6;  ctx.lineCap="round";  ctx.moveTo(0,10);  ctx.lineTo(0,-r/2);  ctx.stroke();  ctx.restore(); } //描绘分针 function drawMinute(minute){  ctx.save();  ctx.beginPath();  var rad=2*Math.PI/60*minute;  ctx.rotate(rad);   ctx.lineWidth=3;  ctx.lineCap="round";  ctx.moveTo(0,10);  ctx.lineTo(0,-r+30);  ctx.stroke();  ctx.restore(); } //描绘秒针 function drawSecond(second){  ctx.save();  ctx.beginPath();  ctx.fillStyle="#C14543";  var rad=2*Math.PI/60*second;  ctx.rotate(rad);  ctx.moveTo(-2,20);  ctx.lineTo(2,20);  ctx.lineTo(1,-r+18);  ctx.lineTo(-1,-r+18)  ctx.fill();  ctx.restore();  } //中间固定园点 function drawDot(){  ctx.beginPath();  ctx.fillStyle="#fff";  ctx.arc(0,0,3,0,2*Math.PI,false);  ctx.fill(); } function draw(){  ctx.clearRect(0,0,width,heigth);  var now=new Date();  var hour=now.getHours();  var minute=now.getMinutes();  var second=now.getSeconds();  drawBackground();  drawHour(hour,minute);  drawMinute(minute);  drawSecond(second);  drawDot();  ctx.restore(); } draw(); setInterval(draw,1000)    

效果如下:

使用canvas绘制一个圆形时钟

看完上述内容,你们掌握使用canvas绘制一个圆形时钟的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联网站建设公司行业资讯频道,感谢各位的阅读!

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:使用canvas绘制一个圆形时钟-创新互联
分享链接:http://scyanting.com/article/dssiee.html