使用canvas绘制一个圆形时钟

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

成都创新互联是专业的东昌府网站建设公司,东昌府接单;提供成都网站建设、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行东昌府网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

代码如下:



 
 
 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绘制一个圆形时钟的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网页题目:使用canvas绘制一个圆形时钟
文章出自:http://myzitong.com/article/ghoioo.html