canvas教程

canvas绘制表盘时钟

字号+ 作者:H5之家 来源:H5之家 2017-07-04 16:09 我要评论( )

本文主要分享了canvas绘制表盘时钟的示例代码。具有很好的参考价值,下面跟着小编一起来看下吧

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>canvas绘制表盘</title> </head> <body> <canvas > 您的浏览器不支持canvas </canvas> <script> var box = document.getElementById('box'); var cxt = box.getContext('2d'); // 时钟动起来 var timer = null; function clock(){ var date = new Date(); var h = date.getHours(); h = h + h/60; h = h>12? h-12:h; var m = date.getMinutes(); var s = date.getSeconds(); // 清画布 cxt.clearRect(0,0,500,500); // 画表盘 cxt.strokeStyle = '#f0f'; cxt.lineWidth = 6; cxt.beginPath(); cxt.arc(250,250,100,0,2*Math.PI); cxt.stroke(); // 画时钟刻度 for(var i=0; i<12; i++){ cxt.save(); cxt.translate(250,250); cxt.rotate(30*i*Math.PI/180); cxt.lineWidth = 3; cxt.beginPath(); cxt.moveTo(0,-80); cxt.lineTo(0,-92); cxt.stroke(); cxt.restore(); } //画分钟刻度 for(var i=0; i<60; i++){ cxt.save(); cxt.translate(250,250); cxt.rotate(6*i*Math.PI/180); cxt.lineWidth = 2; cxt.beginPath(); cxt.moveTo(0,-86); cxt.lineTo(0,-92); cxt.stroke(); cxt.restore(); } // 画时针 cxt.save(); cxt.lineWidth = 5; cxt.translate(250,250); cxt.rotate(h*30*Math.PI/180); cxt.beginPath(); cxt.moveTo(0,6); cxt.lineTo(0,-40); cxt.stroke(); cxt.restore(); // 画分针 cxt.save(); cxt.lineWidth = 3; cxt.translate(250,250); cxt.rotate(m*6*Math.PI/180); cxt.beginPath(); cxt.moveTo(0,8); cxt.lineTo(0,-60); cxt.stroke(); cxt.restore(); // 画秒针 cxt.save(); cxt.lineWidth = 1; cxt.translate(250,250); cxt.rotate(s*6*Math.PI/180); cxt.beginPath(); cxt.moveTo(0,10); cxt.lineTo(0,-75); cxt.stroke(); cxt.restore(); // 画中心的小圆固定三根针 cxt.save(); cxt.beginPath(); cxt.fillStyle = '#0f0'; cxt.lineWidth = 2; cxt.translate(250,250); cxt.arc(0,0,2,0,360,false); cxt.stroke(); cxt.fill(); cxt.restore(); // 画秒针上的园 cxt.save(); cxt.fillStyle = '#f00'; cxt.lineWidth = 2; cxt.translate(250,250); cxt.rotate(s*6*Math.PI/180); cxt.beginPath(); cxt.arc(0,-60,2,0,360,false); cxt.stroke(); cxt.fill(); cxt.restore(); } clock(); timer = setInterval(clock,1000); </script> </body> </html>

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • canvas 弹幕效果(实例分享)

    canvas 弹幕效果(实例分享)

    2017-07-04 17:00

  • Canvas学习:save()和restore()

    Canvas学习:save()和restore()

    2017-07-03 16:02

  • 分区truncate操作的介绍及对全局索引和空间释放影响的案例解析

    分区truncate操作的介绍及对全局索引和空间释放影响的案例解析

    2017-07-03 16:00

  • canvas学习心得之路径

    canvas学习心得之路径

    2017-07-03 15:01

网友点评