canvas画一个时钟

效果图如下

 

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Document</title>
  6 </head>
  7 <body>
  8     <canvas id="canvas" width="500" height="500"></canvas>
  9 </body>
 10 <script>
 11 var canvas = document.getElementById("canvas");
 12 var can = canvas.getContext("2d");
 13 function drawClock(c){
 14     c.clearRect(0,0,500,500);
 15     var now = new Date();
 16     var hours = now.getHours();
 17     var minutes = now.getMinutes();
 18     var seconds = now.getSeconds();
 19     hours = hours>12?hours-12:hours;
 20     hours = hours+minutes/60;
 21     var time = now.toLocaleString();
 22     console.log(hours,minutes,seconds);
 23     c.beginPath();
 24     c.lineWidth=8;
 25     c.arc(250,250,200,0,Math.PI*2,false);
 26     c.stroke();
 27 
 28     for(var i=0;i<12;i++){
 29         c.save();
 30         c.lineWidth=5;
 31         c.translate(250,250);//将起始位置移动到圆心。
 32         c.rotate(i*30*Math.PI/180);//旋转,这里是画刻度的关键,画刻度的线条每次循环都在一个地方,但是画布旋转了。
                        就像切香肠时刀的落点不变,每次将香肠往前推。
33 c.beginPath(); 34 c.moveTo(0,-180); 35 c.lineTo(0,-195); 36 c.closePath(); 37 c.stroke(); 38 c.restore(); 39 } 40 for(var i=0;i<60;i++){ 41 c.save(); 42 c.lineWidth= 3; 43 c.translate(250,250); 44 c.rotate(6*i*Math.PI/180); 45 c.beginPath(); 46 c.moveTo(0,-190); 47 c.lineTo(0,-195); 48 c.closePath(); 49 c.stroke(); 50 c.restore(); 51 } 52 53 //表盘中心 54 c.lineWith=1; 55 c.beginPath(); 56 c.arc(250,250,4,0,360,false); 57 c.fill(); 58 c.closePath(); 59 60 //时针 61 c.save(); 62 c.translate(250,250); 63 c.rotate(hours*30*Math.PI/180); 64 c.lineWidth = 7; 65 c.beginPath(); 66 c.moveTo(0,15); 67 c.lineTo(0,-120); 68 c.stroke(); 69 c.closePath(); 70 c.restore(); 71 72 //分针 73 c.save(); 74 c.translate(250,250); 75 c.rotate(minutes*6*Math.PI/180); 76 c.lineWidth=3; 77 c.moveTo(0,15); 78 c.lineTo(0,-135); 79 c.stroke(); 80 c.restore(); 81 82 //秒针 83 c.save(); 84 c.translate(250,250); 85 c.rotate(seconds*6*Math.PI/180); 86 c.lineWidth=1; 87 c.moveTo(0,15); 88 c.lineTo(0,-160); 89 c.stroke(); 90 c.beginPath(); 91 c.strokeStyle="red"; 92 c.fillStyle="white"; 93 c.arc(0,-145,5,0,180,false); 94 c.fill(); 95 c.stroke(); 96 c.closePath(); 97 98 c.beginPath(); 99 //判断秒数能否被5整除,能整除表示大刻度,反之为小刻度 100 if(seconds%5==0){ 101 c.moveTo(0,-180); 102 c.lineTo(0,-195); 103 c.lineWidth=5; 104 }else{ 105 c.moveTo(0,-190); 106 c.lineTo(0,-195); 107 c.lineWidth=3; 108 } 109 //当秒针走到某个刻度时,相应的边为红色。 110 c.strokeStyle="red"; 111 c.stroke(); 112 c.closePath(); 113 c.restore(); 114 115 //写时间 116 c.font="15px 黑体" 117 c.fillText(time,160,150); 118 } 119 setInterval("drawClock(can)",1000); 120 </script> 121 </html>

转载于:https://www.cnblogs.com/sujianfeng/p/7852335.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 智慧社区背景与挑战 随着城市化的快速发展,社区面临健康、安全、邻里关系和服务质量等多方面的挑战。华为技术有限公司提出智慧社区解决方案,旨在通过先进的数字化技术应对这些问题,提升城市社区的生活质量。 2. 技术推动智慧社区发展 技术进步,特别是数字化、无线化、移动化和物联化,为城市社区的智慧化提供了可能。这些技术的应用不仅提高了社区的运行效率,也增强了居民的便利性和安全性。 3. 智慧社区的核心价值 智慧社区承载了智慧城市的核心价值,通过全面信息化处理,实现对城市各个方面的数字网络化管理、服务与决策功能,从而提升社会服务效率,整合社会服务资源。 4. 多层次、全方位的智慧社区服务 智慧社区通过构建和谐、温情、平安和健康四大社区模块,满足社区居民的多层次需求。这些服务模块包括社区医疗、安全监控、情感沟通和健康监测等。 5. 智慧社区技术框架 智慧社区技术框架强调统一平台的建设,设立数据中心,构建基础网络,并通过分层建设,实现平台能力及应用的可持续成长和扩展。 6. 感知统一平台与服务方案 感知统一平台是智慧社区的关键组成部分,通过统一的RFID身份识别和信息管理,实现社区服务的智能化和便捷化。同时,提供社区内外监控、紧急救助服务和便民服务等。 7. 健康社区的构建 健康社区模块专注于为居民提供健康管理服务,通过整合医疗资源和居民接入,实现远程医疗、慢性病管理和紧急救助等功能,推动医疗模式从治疗向预防转变。 8. 平安社区的安全保障 平安社区通过闭路电视监控、防盗报警和紧急求助等技术,保障社区居民的人身和财产安全,实现社区环境的实时监控和智能分析。 9. 温情社区的情感沟通 温情社区着重于建立社区居民间的情感联系,通过组织社区活动、一键呼叫服务和互帮互助平台,增强邻里间的交流和互助。 10. 和谐社区的资源整合 和谐社区作为社会资源的整合协调者,通过统一接入和身份识别,实现社区信息和服务的便捷获取,提升居民生活质量,促进社区和谐。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值