• canvas实战——圆盘表


    直接上代码,老实人,不忽悠

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>01</title>
    </head>
    <body>
    <canvas id="canvas" width="500" height="500"></canvas>
    </body>
    </html>
    <script type="text/javascript">
        var canvas=document.getElementById('canvas');
        var cxt=canvas.getContext('2d');
        function drawClock() {
            //清除画布
            cxt.clearRect(0,0,500,500);
            var now=new Date();
            var sec=now.getSeconds();
            var min=now.getMinutes();
            var hour=now.getHours();
    
            //小时转换为浮点类型
            hour+=min/60;
            //分钟转化为浮点类型
            min+=sec/60;
            //将24小时进制转化为12小时
            hour=hour>12?hour-12:hour;
    
    
    
            //表盘
            cxt.lineWidth=10;
            cxt.strokeStyle='blue';
            cxt.beginPath();
            cxt.arc(250,250,200,0,360,false);
            cxt.closePath();
            cxt.stroke();
    
            //刻度
            for(var i=0;i<12;i++){
                cxt.save();
                //设置时针的颜色
                cxt.lineWidth=7;
                cxt.strokeStyle='#000';
                //先设置00点
                cxt.translate(250,250);
                //设置旋转角度
                cxt.rotate(i*30*Math.PI/180);  //弧度
                cxt.beginPath();
                cxt.moveTo(0,-170);
                cxt.lineTo(0,-190);
                cxt.closePath();
                cxt.stroke();
                cxt.restore();
            }
    
            //时刻度
            for(var i=0;i<60;i++){
                cxt.save();
                cxt.lineWidth=5;
                cxt.strokeStyle='#000';
                cxt.translate(250,250);
                //设置旋转角度
                cxt.rotate(i*6*Math.PI/180);
                //画分钟刻度
                cxt.beginPath();
                cxt.moveTo(0,-180);
                cxt.lineTo(0,-190);
                cxt.closePath();
                cxt.stroke();
                cxt.restore();
            }
    
            //时针
            cxt.save();
            cxt.lineWidth=7;
            cxt.strokeStyle='#000';
            //设置00点
            cxt.translate(250,250);
            //设置旋转角度
            cxt.rotate(hour*30*Math.PI/180);
            cxt.beginPath();
            cxt.moveTo(0,-140);
            cxt.lineTo(0,10);
            cxt.closePath();
            cxt.stroke();
            cxt.restore();
    
            //分针
            cxt.save();
            cxt.lineWidth=5;
            cxt.strokeStyle='#000';
            //设置00点
            cxt.translate(250,250);
            //设置旋转角度
            cxt.rotate(min*6*Math.PI/180);
            cxt.beginPath();
            cxt.moveTo(0,-160);
            cxt.lineTo(0,15);
            cxt.closePath();
            cxt.stroke();
            cxt.restore();
    
            //秒针
            cxt.save();
            cxt.lineWidth=3;
            cxt.strokeStyle='red';
            //设置00点
            cxt.translate(250,250);
            //设置旋转角度
            cxt.rotate(sec*6*Math.PI/180);
            cxt.beginPath();
            cxt.moveTo(0,-170);
            cxt.lineTo(0,20);
            cxt.closePath();
            cxt.stroke();
            //画小圆点
            cxt.beginPath();
            cxt.arc(0,0,5,0,360,false);
            cxt.closePath();
            //设置填充
            cxt.fillStyle='gray';
            cxt.fill();
            cxt.stroke();
            //秒针小圆点
            cxt.beginPath();
            cxt.arc(0,-150,5,0,360,false);
            cxt.closePath();
            cxt.fillStyle='gray';
            cxt.fill();
            cxt.stroke();
            cxt.restore();
        }
    
    
        //使用定时器
        setInterval(drawClock,1000);
    </script>
  • 相关阅读:

    Windows终端无法通过cd切换盘符目录
    linux工程相对路径读取文件
    Ubuntu常用命令的安装
    vue项目的创建和遇到的一些问题
    超详细!Head First:HTML and CSS的读书笔记
    laravel开发环境部署遇到的问题和个人感受
    java并发:线程池之ScheduledExecutorService
    java并发:线程池之饱和策略
    java并发:线程池之ThreadPoolExecutor
  • 原文地址:https://www.cnblogs.com/zhnaglei/p/6610601.html
Copyright © 2020-2023  润新知