zoukankan      html  css  js  c++  java
  • canvas 实现时钟效果

    var clock = document.getElementById('clock');
    var cxt = clock.getContext('2d');

    function drawClock(){

    var now = new Date();
    var sec = now.getSeconds();
    var min = now.getMinutes();
    var hour = now.getHours();
    hour = hour + min/60;
    hour = hour>12? hour-12: hour;

    // 清除画布
    cxt.clearRect(0, 0, 500, 500);
    // 表盘
    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';
    cxt.translate(250, 250);
    cxt.rotate(i * 30 * Math.PI/180);
    cxt.beginPath(0, 0);
    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';
    cxt.translate(250, 250);
    cxt.rotate(30 * hour * 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';
    cxt.translate(250, 250);
    cxt.rotate(6 * min * 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';
    cxt.translate(250, 250);
    cxt.rotate(6 * sec * Math.PI/180);
    cxt.beginPath();
    cxt.moveTo(0, -170);
    cxt.lineTo(0, 20);
    cxt.closePath();
    cxt.stroke();

    cxt.beginPath();
    cxt.arc(0, 0, 6, 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();
    }
    drawClock();
    setInterval(drawClock, 1000);

  • 相关阅读:
    c语言 数组名是常量指针
    c语言 动态数组
    c语言 指针的值
    c语言 &取地址运算符的理解
    c语言 指针与地址的区别
    c语言 指针与数组
    linux cheese摄像机工具在window电脑上显示
    C#实现简单的 Ping 的功能,用于测试网络是否已经联通
    c# 扫描局域网IP列表的几种方法
    c# 遍历局域网计算机(电脑)获取IP和计算机名称
  • 原文地址:https://www.cnblogs.com/liubu/p/7846924.html
Copyright © 2011-2022 走看看