国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS+Canvas繪制時鐘效果

2019-11-20 09:55:54
字體:
來源:轉載
供稿:網友

本文實例為大家分享了使用canvas繪制時鐘的具體代碼,供大家參考,具體內容如下

1. clock.html   

<!doctype html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="Description" content=""> <title>canvas時鐘</title> </head> <body>  <canvas id="canvas" width="300" height="300"></canvas>  <script>    var canvas=document.getElementById("canvas");    var context=canvas.getContext('2d');    //draw();    function draw(){      //得到當前系統的時分秒      var now=new Date();      var sec=now.getSeconds();      var min=now.getMinutes();      var hour=now.getHours();      hour>=12&&(hour=hour-12);              var radius = Math.min(canvas.width/2,canvas.height/2);      //初始化畫布      context.save();      context.clearRect(0,0,canvas.width,canvas.height);       context.translate(canvas.width/2,canvas.height/2);       context.rotate(-Math.PI/2);      context.save();         //表框              //小時刻度      context.strokeStyle="black";      context.fillStyle="black";      context.lineWidth=3;      context.lineCap="round";      context.beginPath();      for(var i=0;i<12;i++){        context.rotate(Math.PI/6);        context.moveTo(radius-30,0);        context.lineTo(radius-10,0);       }      context.stroke();      context.restore();      context.save();       //分鐘刻度      context.lineWidth=2;      context.beginPath();      for(var i=0;i<60;i++){        if(!i%5==0){        context.moveTo(radius-15,0);        context.lineTo(radius-10,0);        }        context.rotate(Math.PI/30);      }      context.stroke();      context.restore();      context.save();       //畫上時針        context.rotate((Math.PI/6)*hour+(Math.PI/360)*min+(Math.PI/21600)*sec);       context.lineWidth=6;       context.beginPath();       context.moveTo(-10,0);       context.lineTo(radius*0.5,0);       context.stroke();      context.restore();      context.save();        context.rotate((Math.PI/30)*min+(Math.PI/1800)*sec);   context.strokeStyle="#29A8DE";   context.lineWidth=4;   context.lineCap="butt";   context.beginPath();   context.moveTo(-20,0);   context.lineTo(radius*0.7,0);   context.stroke();   context.restore();   context.save();    context.rotate(sec*Math.PI/30);   context.strokeStyle="red";   context.lineWidth=2;   context.lineCap="butt";   context.beginPath();   context.moveTo(-30,0);   context.lineTo(radius*0.9,0);   context.stroke();   context.restore();   context.save();       context.lineWidth=4;       context.strokeStyle="gray";      context.beginPath();         context.arc(0,0,radius,0,Math.PI*2,true);     context.stroke();     context.restore();       context.restore();    }     window.onload=function(){      setInterval(draw,1000)    }  </script> </body></html>

2. JavaScript代碼

<script>    var canvas=document.getElementById("canvas");    var context=canvas.getContext('2d');    //draw();    function draw(){      //得到當前系統的時分秒      var now=new Date();      var sec=now.getSeconds();      var min=now.getMinutes();      var hour=now.getHours();      hour>=12&&(hour=hour-12);              var radius = Math.min(canvas.width/2,canvas.height/2);      //初始化畫布      context.save();      context.clearRect(0,0,canvas.width,canvas.height);       context.translate(canvas.width/2,canvas.height/2);       context.rotate(-Math.PI/2);      context.save();         //表框              //小時刻度      context.strokeStyle="black";      context.fillStyle="black";      context.lineWidth=3;      context.lineCap="round";      context.beginPath();      for(var i=0;i<12;i++){        context.rotate(Math.PI/6);        context.moveTo(radius-30,0);        context.lineTo(radius-10,0);       }      context.stroke();      context.restore();      context.save();       //分鐘刻度      context.lineWidth=2;      context.beginPath();      for(var i=0;i<60;i++){        if(!i%5==0){        context.moveTo(radius-15,0);        context.lineTo(radius-10,0);        }        context.rotate(Math.PI/30);      }      context.stroke();      context.restore();      context.save();       //畫上時針        context.rotate((Math.PI/6)*hour+(Math.PI/360)*min+(Math.PI/21600)*sec);       context.lineWidth=6;       context.beginPath();       context.moveTo(-10,0);       context.lineTo(radius*0.5,0);       context.stroke();      context.restore();      context.save();        context.rotate((Math.PI/30)*min+(Math.PI/1800)*sec);   context.strokeStyle="#29A8DE";   context.lineWidth=4;   context.lineCap="butt";   context.beginPath();   context.moveTo(-20,0);   context.lineTo(radius*0.7,0);   context.stroke();   context.restore();   context.save();    context.rotate(sec*Math.PI/30);   context.strokeStyle="red";   context.lineWidth=2;   context.lineCap="butt";   context.beginPath();   context.moveTo(-30,0);   context.lineTo(radius*0.9,0);   context.stroke();   context.restore();   context.save();       context.lineWidth=4;       context.strokeStyle="gray";      context.beginPath();         context.arc(0,0,radius,0,Math.PI*2,true);     context.stroke();     context.restore();       context.restore();    }     window.onload=function(){      setInterval(draw,1000)    }  </script>

以上就是本文的全部內容,希望對大家學習javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 商城县| 永修县| 博湖县| 平潭县| 乌拉特前旗| 大关县| 榆树市| 惠东县| 肥东县| 康平县| 桦甸市| 徐水县| 民勤县| 微博| 尚义县| 山西省| 白玉县| 庐江县| 汝州市| 石狮市| 通辽市| 庄河市| 来宾市| 苏尼特右旗| 盈江县| 双鸭山市| 顺平县| 泰宁县| 金昌市| 刚察县| 叙永县| 张掖市| 聂拉木县| 合山市| 宁津县| 永康市| 和林格尔县| 鸡西市| 宜宾市| 松潘县| 衡东县|