91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何通過Canvas+JS實現簡易的時鐘

發布時間:2021-11-24 13:55:18 來源:億速云 閱讀:144 作者:柒染 欄目:編程語言

今天就跟大家聊聊有關如何通過Canvas+JS實現簡易的時鐘,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

之前學習了下html5中的canvas元素,為了練練手就實現了一個簡易的時鐘。時鐘本身并不復雜,也沒有使用圖片進行美化,不過麻雀雖小五臟俱全,下面就與大家分享一下:

實現效果:


如何通過Canvas+JS實現簡易的時鐘

html代碼:

<!DOCTYPE html> <html> <head>     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />     <title>Clock</title>     <style type="text/css">     *{         margin: 0;         padding: 0;     }     .canvas{         margin-left: 20px;         margin-top: 20px;         border: solid 1px;     }     </style> </head> <body onload= "main()">  <canvas class = "canvas" id="canvasId" width = '500px' height = '400px'></canvas>  <script type= "text/javascript" src = "Clock.js"></script> </body> </html>

JS代碼:

var Canvas = {};  Canvas.cxt = document.getElementById('canvasId').getContext('2d');  Canvas.Point = function(x, y){     this.x = x;     this.y = y; };  /*擦除canvas上的所有圖形*/ Canvas.clearCxt = function(){     var me = this;     var canvas = me.cxt.canvas;        me.cxt.clearRect(0,0, canvas.offsetWidth, canvas.offsetHeight); };  /*時鐘*/ Canvas.Clock = function(){     var me = Canvas,         c = me.cxt,         radius = 150, /*半徑*/         scale = 20, /*刻度長度*/         minangle = (1/30)*Math.PI, /*一分鐘的弧度*/         hourangle = (1/6)*Math.PI, /*一小時的弧度*/         hourHandLength = radius/2, /*時針長度*/         minHandLength = radius/3*2, /*分針長度*/         secHandLength = radius/10*9, /*秒針長度*/         center = new me.Point(c.canvas.width/2, c.canvas.height/2); /*圓心*/         /*繪制圓心(表盤中心)*/     function drawCenter(){         c.save();          c.translate(center.x, center.y);           c.fillStyle = 'black';         c.beginPath();         c.arc(0, 0, radius/20, 0, 2*Math.PI);         c.closePath();         c.fill();         c.stroke();          c.restore();     };      /*通過坐標變換繪制表盤*/     function drawBackGround(){         c.save();          c.translate(center.x, center.y); /*平移變換*/         /*繪制刻度*/         function drawScale(){            c.moveTo(radius - scale, 0);            c.lineTo(radius, 0);          };          c.beginPath();         c.arc(0, 0, radius, 0, 2*Math.PI, true);         c.closePath();              for (var i = 1; i <= 12; i++) {            drawScale();            c.rotate(hourangle); /*旋轉變換*/         };         /*繪制時間(3,6,9,12)*/         c.font = " bold 30px impack"         c.fillText("3", 110, 10);         c.fillText("6", -7, 120);         c.fillText("9", -120, 10);         c.fillText("12", -16, -100);         c.stroke();          c.restore();     };      /*繪制時針(h: 當前時(24小時制))*/     this.drawHourHand = function(h){          h = h === 0? 24: h;          c.save();         c.translate(center.x, center.y);          c.rotate(3/2*Math.PI);          c.rotate(h*hourangle);          c.beginPath();         c.moveTo(0, 0);         c.lineTo(hourHandLength, 0);         c.stroke();         c.restore();     };      /*繪制分針(m: 當前分)*/     this.drawMinHand = function(m){          m = m === 0? 60: m;          c.save();         c.translate(center.x, center.y);          c.rotate(3/2*Math.PI);          c.rotate(m*minangle);          c.beginPath();         c.moveTo(0, 0);         c.lineTo(minHandLength, 0);         c.stroke();         c.restore();     };      /*繪制秒針(s:當前秒)*/     this.drawSecHand = function(s){          s = s === 0? 60: s;          c.save();         c.translate(center.x, center.y);          c.rotate(3/2*Math.PI);          c.rotate(s*minangle);          c.beginPath();         c.moveTo(0, 0);         c.lineTo(secHandLength, 0);         c.stroke();         c.restore();     };      /*依據本機時間繪制時鐘*/     this.drawClock = function(){         var me = this;           function draw(){            var date = new Date();             Canvas.clearCxt();             drawBackGround();            drawCenter();            me.drawHourHand(date.getHours() + date.getMinutes()/60);            me.drawMinHand(date.getMinutes() + date.getSeconds()/60);            me.drawSecHand(date.getSeconds());         }         draw();         setInterval(draw, 1000);     };   };   var main = function(){     var clock = new Canvas.Clock();     clock.drawClock(); };

代碼中涉及到了一些簡單的canvas元素API 大家google一下即可,

看完上述內容,你們對如何通過Canvas+JS實現簡易的時鐘有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荔波县| 台南县| 西乌珠穆沁旗| 孝昌县| 怀柔区| 安西县| 曲周县| 泽州县| 南川市| 榆社县| 青龙| 潢川县| 万载县| 资讯| 准格尔旗| 普陀区| 新密市| 海城市| 西乡县| 铜鼓县| 永德县| 宁德市| 彰化市| 花垣县| 太白县| 马关县| 盐源县| 乌苏市| 望奎县| 乌审旗| 宁远县| 古丈县| 鄱阳县| 莫力| 清远市| 沂南县| 神木县| 和政县| 馆陶县| 沈丘县| 达拉特旗|