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

为啥我的秒针转动是按照小时转的,而不是秒啊?

为啥我的秒针转动是按照小时转的,而不是秒啊?

qq_笑的狠牵强_0 2017-03-12 16:55:18
查看完整描述

1 回答

?
西兰花伟大炮

TA贡献376条经验 获得超318个赞

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        #canvas{
            border: 1px solid #e9e0b5;
            margin: 200px auto;
            display: block;
        }
    </style>
</head>
<body>
<canvas id="canvas" width="300" height="300"></canvas>
<script>
    var canvas = document.getElementById("canvas");
    var ctx = canvas.getContext("2d");
    var width = ctx.canvas.width;
    var height = ctx.canvas.height;
    var r = width /2;

    function drawbackground(ctx){
        ctx.save();
        ctx.translate(r,r);
        ctx.beginPath();
        ctx.lineWidth = 10;
        ctx.arc(0 ,0 , r-5, 0, Math.PI * 2);
        ctx.stroke();
        ctx.closePath();
        ctx.textAlign = "center";
        ctx.textBaseline = "middle";
        ctx.font = "18px Arial";
        var hourNumber = [3,4,5,6,7,8,9,10,11,12,1,2];
        hourNumber.forEach(function (number,i) {
            var rad = Math.PI * 2 / 12 * i;
            var x = Math.cos(rad) * (r - 40);
            var y = Math.sin(rad) * (r - 40);
            ctx.fillText(number,x,y);
        });

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

        }
    }
    function drawhour(hour,minute){
        ctx.save();
        ctx.beginPath();
        var radhour = Math.PI * 2 /12 * hour;
        var radminute = Math.PI * 2 /12 / 60 * minute;
        ctx.rotate(radhour + radminute);
        ctx.lineWidth = 6;
        ctx.lineCap = "round";
        ctx.moveTo(0,10);
        ctx.lineTo(0,-r + 50);
        ctx.stroke();
        ctx.restore();
    }
    function drawminute(minute){
        ctx.save();
        ctx.beginPath();
        var radhour = Math.PI * 2 /60 * minute;
        ctx.rotate(radhour);
        ctx.lineWidth = 3;
        ctx.lineCap = "round";
        ctx.moveTo(0,15);
        ctx.lineTo(0,-r + 40);
        ctx.stroke();
        ctx.restore();
    }
    function drawsecond(second){
        ctx.save();
        ctx.beginPath();
        var radsecond = Math.PI * 2 /60 * second;
        ctx.rotate(radsecond);
        ctx.moveTo(-2,20);
        ctx.lineTo(2,20);
        ctx.lineTo(-1,-r + 35);
        ctx.lineTo(1,-r + 35);
        ctx.fillStyle = "red";
        ctx.fill();
        ctx.restore();
    }
    function draw(){
        ctx.clearRect(0,0,width,height);
        var now = new Date();
        var hour = now.getHours();
        var minute = now.getMinutes();
        var second = now.getSeconds();
        drawbackground(ctx);
        drawhour(hour,minute);
        drawminute(minute);
        drawsecond(second);
        ctx.restore();
    }
    draw();
    setInterval(draw,1000);
</script>
</body>
</html>

你又不贴代码,还要看你课程才知道你问的是什么,看你的问题,应该是时间转换错了,对比一下上面的吧

查看完整回答
2 反对 回复 2017-03-12
  • 1 回答
  • 0 关注
  • 1288 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信