您当前的位置:首页 > 文章 > 使用Javascript实现钟表

使用Javascript实现钟表

作者:~柠凉id 时间:2023-04-04 阅读数:332 人阅读

使用h5的方式来实现钟表

<canvas id="demo" width="400" height="400"></canvas>


   < script >
     var cnavas = document.getElementById("demo");
        var ctx = cnavas.getContext("2d");
        var r = 100;//外圆半径
        var r2 = 90;//内圆半径       
        var x = 200, y = 200; //圆心
        function drawClock() {
            ctx.clearRect(0, 0, 400, 400);//清除画布
            ctx.lineWidth = 1 //线条的宽度
            ctx.beginPath();
            ctx.arc(x, y, r, 0, 2 * Math.PI); //绘制外圆
            ctx.stroke(); 
            //绘制刻度
            for (let index = 0; index < 60; index++) {
                ctx.beginPath();
                var deg = index * 6;
                r2 = index % 5 == 0 ? 80 : 90; //5的倍数可点要长一点的处理
                //内圆作为起始点
                var start = { x: x + r2 * Math.cos(deg * Math.PI / 180), y: y + r2 * Math.sin(deg * Math.PI / 180) };
                //外圆作为结束点
                var end = { x: x + r * Math.cos(deg * Math.PI / 180), y: y + r * Math.sin(deg * Math.PI / 180) };
                ctx.moveTo(start.x, start.y);
                ctx.lineTo(end.x, end.y);
                ctx.stroke();
                ctx.closePath();
            }
            var date = new Date();
            var seconde = date.getSeconds();
            var minute = date.getMinutes();
            var hour = date.getHours();
 
            var secDeg = seconde * 6 - 90;//秒钟的角度
            var minuteDeg = minute * 6 - 90;//分钟的角度
            var hourDeg = hour * 30 - 90;//时钟的角度
            //绘制秒针
            ctx.beginPath();
            ctx.moveTo(x, y);
            ctx.lineTo(x + 70 * Math.cos(secDeg * Math.PI / 180), y + 70 * Math.sin(secDeg * Math.PI / 180));
            ctx.stroke();
 
            //绘制秒针
            ctx.beginPath();
            ctx.moveTo(x, y);
            ctx.lineWidth = 3
            ctx.lineTo(x + 60 * Math.cos(minuteDeg * Math.PI / 180), y + 60 * Math.sin(minuteDeg * Math.PI / 180));
            ctx.stroke();
 
            //绘制秒针
            ctx.beginPath();
            ctx.moveTo(x, y);
            ctx.lineWidth = 5
            ctx.lineTo(x + 40 * Math.cos(hourDeg * Math.PI / 180), y + 40 * Math.sin(hourDeg * Math.PI / 180));
            ctx.stroke();
 
 
        }
        setInterval(drawClock, 1000);
   < /script >

本站大部分文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。

如果侵犯了您的权益请来信告知我们删除。邮箱:1451803763@qq.com

标签:JavaScript