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>
  • 相关阅读:
    Web 跨域请求(OCRS) 前端解决方案
    接口与抽象
    观察者模式
    建造者模式(Builder)
    外观设计模式 (Facade)
    模板方法模式( TemplateMethod)
    原型模式(ProtoType)
    简单工厂法( Factory Method)
    backup与recover
    Oracle自动备份脚本的实现
  • 原文地址:https://www.cnblogs.com/zhnaglei/p/6610601.html
Copyright © 2011-2022 走看看