站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        Canvas繪制出時鐘的代碼示例

        本篇文章給大家?guī)淼膬?nèi)容是關(guān)于Canvas繪制出時鐘的代碼示例,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

        完整代碼:

        <!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <meta http-equiv="X-UA-Compatible" content="ie=edge">     <title>Document</title>     <style type="text/css">         div {             text-align: center;             margin-top: 250px;         }     </style> </head>  <body>     <div>         <canvas id="clock" height="200px" width="200px">你的瀏覽器不支持canvas</canvas>     </div>      <script>         var dom = document.getElementById('clock');         var ctx = dom.getContext('2d');         var width = ctx.canvas.width;         var height = ctx.canvas.height;         var r = width / 2;           //繪制表盤         function drawBackground() {             ctx.save();             ctx.translate(r, r);             ctx.beginPath();             ctx.lineWidth = 10;              ctx.arc(0, 0, r - 5, 0, 2 * Math.PI, false);             ctx.stroke();              var hourNumbers = [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2];             ctx.font = '18px Arial';             ctx.textAlign = 'center';              ctx.textBaseline = 'middle';              //小時數(shù)字             hourNumbers.forEach(function (number, i) {                 var rad = 2 * Math.PI / 12 * i;                 var x = Math.cos(rad) * (r - 30);                 var y = Math.sin(rad) * (r - 30);                 ctx.fillText(number, x, y);                 // console.log(x)             })              //繪制分刻度             for (var i = 0; i < 60; i++) {                 var rad = 2 * Math.PI / 60 * i;                 var x = Math.cos(rad) * (r - 18);                 var y = Math.sin(rad) * (r - 18);                 ctx.beginPath();                 if (i % 5 == 0) {                     ctx.fillStyle = '#000';                     ctx.arc(x, y, 2, 0, 2 * Math.PI, false);                 } else {                     ctx.fillStyle = '#ccc';                     ctx.arc(x, y, 2, 0, 2 * Math.PI, false);                 }                  ctx.fill();             }          }            //繪制時針         function drawHour(hour, minute) {             ctx.save();             ctx.beginPath();             var rad = 2 * Math.PI / 12 * hour;             var mrad = 2 * Math.PI / 12 / 60 * minute;             ctx.rotate(rad + mrad);             ctx.lineWidth = 6;             ctx.lineCap = 'round';             ctx.moveTo(0, 10);             ctx.lineTo(0, -r / 2);             ctx.stroke();             ctx.restore();         }           //繪制分針         function drawMinute(minute) {             ctx.save();             ctx.beginPath();             var rad = 2 * Math.PI / 60 * minute;             ctx.rotate(rad);             ctx.lineWidth = 3;             ctx.lineCap = 'round';             ctx.moveTo(0, 10);             ctx.lineTo(0, -r + 30);             ctx.stroke();             ctx.restore();         }           //繪制秒針         function drawSecond(second) {             ctx.save();             ctx.beginPath();             ctx.fillStyle = 'red'             var rad = 2 * Math.PI / 60 * second;             ctx.rotate(rad);             ctx.moveTo(-2, 20);             ctx.lineTo(2, 20);             ctx.lineTo(1, -r + 18);             ctx.lineTo(-1, -r + 18);             ctx.fill();             ctx.restore();         }          //繪制指針的端點         function drawDot() {             ctx.beginPath();             ctx.fillStyle = 'white';             ctx.arc(0, 0, 3, 0, 2 * Math.PI, false);             ctx.fill();         }          //動起來         function draw() {             //清除之前所繪制的             ctx.clearRect(0, 0, width, height);              var now = new Date();             var hour = now.getHours();             var minute = now.getMinutes();             var second = now.getSeconds();             drawBackground();             drawHour(hour, minute);             drawMinute(minute);             drawSecond(second)             drawDot();             ctx.restore();         }         //draw();          setInterval(draw, 1000);     </script> </body>  </html>

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 国产精品欧美亚洲韩国日本不卡| 国产高清精品在线| 九九热精品在线| 亚洲av永久无码精品网站 | 刺激无码在线观看精品视频| 久久成人国产精品| 亚洲精品一级无码鲁丝片| 国产精品 猎奇 另类视频| 国产成人精品高清在线观看99| 无码人妻精品一区二区三区夜夜嗨| 精品国产人成亚洲区| 91人前露出精品国产| 欧美精品第欧美第12页| 国产短视频精品一区二区三区| 精品国产VA久久久久久久冰 | 久久国产美女免费观看精品 | 中文字幕久久精品| 日本精品视频在线观看| 国产精品成人99久久久久91gav| 久久国产精品-久久精品| 国产精品一久久香蕉国产线看| 精品国产一区二区三区无码| 久久久国产乱子伦精品作者| 亚洲精品自在在线观看| 亚洲精品高清国产一线久久| 亚洲精品国产自在久久| 欧美激情精品久久久久久久九九九| 精品国产毛片一区二区无码| 国产精品麻豆VA在线播放| 国产精品99久久久久久董美香| 99久久精品国产一区二区蜜芽| 91精品国产成人网在线观看| 国产成人精品一区二三区在线观看| 一级成人精品h| 国产av无码专区亚洲国产精品| 91精品国产成人网在线观看| 国产精品毛片a∨一区二区三区| 国产精品小视频免费无限app| 国产精品久久久久久久久久免费| 国产玖玖玖九九精品视频| 国产在线观看高清精品|