为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我做的多了一条线?不知到怎么清除,求大神帮忙!

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>canvas绘制时钟</title>
</head>
<body>
   <canvas id="demo">
       你的浏览器不支持canvas,请更换浏览器!
   </canvas>
   <script>
           (function () {
               var canvas=document.getElementById("demo");
               var ctx=canvas.getContext("2d");
               canvas.height=600;
               canvas.width=600;
               var w=canvas.width;
               var h=canvas.height;
               var r=w/2;

           function drawBackgroud() {
               ctx.save();
               ctx.translate(r,r);
               ctx.lineWidth=15;
               ctx.arc(0,0,r-15,0,2*Math.PI);
               ctx.stroke();

               var hoursNumber=[3,4,5,6,7,8,9,10,11,12,1,2];
               for (var i=0;i<hoursNumber.length;i++)
               {
                   ctx.font="35px Arial";
                   ctx.textAlign="center";
                   ctx.textBaseline="middle";
                   var rad=2*Math.PI/12*i;
                   var x=(r-60)*Math.cos(rad);
                   var y=(r-60)*Math.sin(rad);
                   ctx.fillText(hoursNumber[i],x,y);
               }

               for (var i=0;i<60;i++)
               {
                   var rad=2*Math.PI/60*i;
                   var x=(r-35)*Math.cos(rad);
                   var y=(r-35)*Math.sin(rad);
                   ctx.beginPath();
                   if (i%5===0)
                   {
                       ctx.fillStyle="#000";
                       ctx.arc(x,y,5,0,2*Math.PI);
                   }
                   else
{
                       ctx.fillStyle="#ccc";
                       ctx.arc(x,y,5,0,2*Math.PI);
                   }
                   ctx.fill();
               }
           }

           //绘制时针、分针、秒针
function drawDot() {
                   ctx.beginPath();
                   ctx.fillStyle="#fff";
                   ctx.arc(0,0,5,0,2*Math.PI);
                   ctx.fill();
               }

           function drawHour(hour,minute) {
               ctx.save();
               ctx.beginPath();
               var rad=2*Math.PI/12*hour+2*Math.PI/12/60*minute;
               ctx.rotate(rad);
               ctx.lineWidth=10;
               ctx.lineCap="round";
               ctx.moveTo(0,20);
               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=5;
                   ctx.lineCap="round";
                   ctx.moveTo(0,20);
                   ctx.lineTo(0,-r+60);
                   ctx.stroke();
                   ctx.restore();
               }
               function drawSecond(second) {
                   ctx.save();
                   ctx.beginPath();
                   ctx.fillStyle="red";
                   var rad=2*Math.PI/60*second;
                   ctx.rotate(rad);
                   ctx.moveTo(2,20);
                   ctx.lineTo(-2,20);
                   ctx.lineTo(-1,-r+40);
                   ctx.lineTo(1,-r+40);
                   ctx.fill();
                   ctx.restore();
               }
               function draw() {
                   ctx.clearRect(0,0,w,h);
                   var now=new Date();
                   var hour=now.getHours();
                   var minute=now.getMinutes();
                   var second=now.getSeconds();
                   drawBackgroud();
                   drawHour(hour,minute);
                   drawMinute(minute);
                   drawSecond(second);
                   drawDot();
                   ctx.restore();
               }
               draw();
           setInterval(draw,1000);
       })();


   </script>

</body>
</html>http://img1.sycdn.imooc.com//58a9b6e80001591f13490597.jpg

正在回答

举报

0/150
提交
取消

为什么我做的多了一条线?不知到怎么清除,求大神帮忙!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信