zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    sql中的并、交、差
    白水的sql需求:每个病人的对应最小诊断类别|partition|
    |转|oracle行转列点评oracle11g sql新功能pivot/unpivot
    oracle wm_concat(column)函数的使用不同公司支付同一客商(行转列)|转|
    记录那些删除的伴我成长的触发器
    PL/SQL Developer使用技巧|F=Forwarding|
    手工创建数据库 ocp课程 wait for
    Oracle数据库监听配置|转|
    最新解决的sql:病人相邻两次看病小于3天
    tns的一些常见错误分析实例 |转|
  • 原文地址:https://www.cnblogs.com/zhnaglei/p/6610601.html
Copyright © 2011-2022 走看看