html5 canvas 画时钟
admin
2023-01-30 02:24:23
0







    // get the canvas
    var myCanvas = document.getElementById("myCanvas");
    var ctx = myCanvas.getContext("2d");

    function showClock(){
        ctx.save();
        ctx.save();
        ctx.save();
        ctx.save();
        ctx.save();
        ctx.save();
        ctx.save();
        ctx.clearRect(0,0,400,400);

        // create the clock border
        ctx.restore();
        ctx.beginPath();
        ctx.strokeStyle="pink";
        ctx.lineWidth=10;
        ctx.arc(200,200,150,0,Math.PI*2,true);
        ctx.stroke();


        // create the hour icon
        ctx.restore();
        ctx.lineWidth=8;
        ctx.strokeStyle="blue";
        ctx.translate(200,200);
        for(var i=0;i<12;i++){
          ctx.beginPath();      
          ctx.moveTo(135,0);
          ctx.lineTo(150,0);
          ctx.rotate(Math.PI/6);
          ctx.stroke();
        }

        // create the minute icon
        ctx.restore();
        ctx.lineWidth=4;
        ctx.strokeStyle="blue";
        ctx.translate(200,200);
        for(var i=0;i<60;i++){
          ctx.beginPath();      
          ctx.moveTo(145,0);
          ctx.lineTo(150,0);
          ctx.rotate(Math.PI/30);
          ctx.stroke();
        }

        var date = new Date();
        var hour = date.getHours();
        var minute = date.getMinutes();
        var second = date.getSeconds();
        hour = hour>=12?hour-12:hour;
        
        // create the hour hand
        ctx.restore();
        ctx.lineWidth = 14;
        ctx.strokeStyle="pink";
        ctx.translate(200,200);
        ctx.rotate(hour*(Math.PI/6) + (Math.PI/360)*minute + (Math.PI/21600)*second-Math.PI/2);
        ctx.beginPath();      
        ctx.moveTo(-20,0);
        ctx.lineTo(90,0);     
        ctx.stroke();
       

        // create the minute hand
        ctx.restore();
        ctx.lineWidth = 10;
        ctx.strokeStyle="pink";
        ctx.translate(200,200);
        ctx.rotate((Math.PI/30)*minute + (Math.PI/1800)*second-Math.PI/2);
        ctx.beginPath();      
        ctx.moveTo(-30,0);
        ctx.lineTo(125,0);     
        ctx.stroke();

        // create the second hand
        ctx.restore();
        ctx.lineWidth = 4;
        ctx.strokeStyle="pink";
        ctx.translate(200,200);
        ctx.rotate( (Math.PI/30)*second-Math.PI/2);
        ctx.beginPath();      
        ctx.moveTo(-35,0);
        ctx.lineTo(135,0);     
        ctx.stroke();

        ctx.restore();
        setTimeout(showClock,1000);
    }

showClock();



上一篇:html5 SVG 涂鸦

下一篇:html5 canvas 涂鸦

相关内容

热门资讯

平均每天减少22所小学,会带来... 学龄人口收缩将是长期趋势,这为教育发展目标从“规模满足”转向“质量提升”打开了窗口文|《财经》记者 ...
“机车”的民进党怕的不是车,是... 【文/观察者网专栏作者 甘向泰】近日,一则消息在海峡两岸炸开:张雪机车董事长张雪日前接受媒体采访时表...
以媒:美国通知以方将扩大对伊袭... 【环球网报道】据《以色列时报》、《新消息报》网站等以媒22日报道,美国已通知以色列,计划扩大对伊朗的...
毒油案发22天才启动事故调查,... 海峡导报综合报道 台当局卫生主管部门负责人石崇良21日公布“中联油脂”30批预防性下架油品样本检验结...
特朗普再威胁,伊朗各方回应 当地时间7月22日,伊朗外交部长阿拉格齐在社交平台上发文表示,伊朗的防御原则非常明确:以眼还眼。他写...
男子拍台球助教臀部被拘留,称对... 近日,据《1818黄金眼》报道,浙江杭州一男子洪先生因在台球俱乐部拍打女助教臀部,被警方认定构成猥亵...
【正片首发】麦田里,当河南坠子... 您的浏览器不支持 video 标签。当麦田里的守望者遇见麦田里的歌唱者,当河南坠子、宋词吟唱、摇滚回...
宗馥莉再次败诉!律师解读:香港... 作者:刘婷宗馥莉围绕18亿美元资产的第三次努力,还是没能成功。7月21日,香港高等法院就娃哈哈集团创...
德国人还在纠结打孔?中国制造已... 近5年来,持续高温不断刷新德国人对夏季气候的认知。“与记忆中的德国相比,如今夏天更热,高温天气也更常...
特朗普第三度通谍伊朗,红线划到... 前一天刚刚宣称“赢麻了”的美国总统特朗普,22日突然通过社交媒体向伊朗强硬喊话。“即刻起,只要伊朗伊...