专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

如何用canvas绘制钟表_CSS学习

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/4 1:21:15       共计:3591 浏览

如何用canvas绘制钟表?

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>HTML5 timer</title>

<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>

<style>

.clocks { height: 500px; margin: 25px auto; position: relative; width: 500px; } </style> </head> <body> <header> <h2>HTML5 timer</h2> </header> <div class="clocks"> <canvas id="canvas" width="500" height="500"></canvas> </div> </body></html>

<script>var canvas, ctx;

var clockRadius = 250;var clockImage;

function clear() { ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);}function drawScene() { clear(); var date = new Date(); var hours = date.getHours(); var minutes = date.getMinutes(); var seconds = date.getSeconds(); hours = hours > 12 ? hours - 12 : hours; var hour = hours + minutes / 60; var minute = minutes + seconds / 60; ctx.save(); ctx.drawImage(clockImage, 0, 0, 500, 500); ctx.translate(canvas.width / 2, canvas.height / 2); ctx.beginPath(); ctx.font = '36px Arial'; ctx.fillStyle = '#000'; ctx.textAlign = 'center'; ctx.textBaseline = 'middle'; for (var n = 1; n <= 12; n++) { var theta = (n - 3) * (Math.PI * 2) / 12; var x = clockRadius * 0.9 * Math.cos(theta); var y = clockRadius * 0.9 * Math.sin(theta); ctx.fillText(n, x, y); } ctx.save(); var theta = (hour - 3) * 2 * Math.PI / 12; ctx.rotate(theta); ctx.beginPath(); ctx.moveTo(-15, -5); ctx.lineTo(-15, 5); ctx.lineTo(clockRadius * 0.5, 1); ctx.lineTo(clockRadius * 0.5, -1); ctx.fill(); ctx.restore(); ctx.save(); var theta = (minute - 15) * 2 * Math.PI / 60; ctx.rotate(theta); ctx.beginPath(); ctx.moveTo(-15, -4); ctx.lineTo(-15, 4); ctx.lineTo(clockRadius * 0.8, 1); ctx.lineTo(clockRadius * 0.8, -1); ctx.fill(); ctx.restore(); ctx.save(); var theta = (seconds - 15) * 2 * Math.PI / 60; ctx.rotate(theta); ctx.beginPath(); ctx.moveTo(-15, -3); ctx.lineTo(-15, 3); ctx.lineTo(clockRadius * 0.9, 1); ctx.lineTo(clockRadius * 0.9, -1); ctx.fillStyle = '#0f0'; ctx.fill(); ctx.restore(); ctx.restore(); ctx.beginPath(); //画笔开始 ctx.lineWidth = 5; //设置画笔的线宽 ctx.strokeStyle="blue"; //设置画笔的颜色 ctx.arc(250,250,248,0,360,false); //绘制圆形,坐标250,250 半径200,整圆(0-360度),false表示顺时针 ctx.stroke(); //绘图 ctx.closePath(); //结束画布}$(function(){ canvas = document.getElementById('canvas'); ctx = canvas.getContext('2d'); clockImage = new Image(); setInterval(drawScene, 1000);});</script>

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:acdsee功能不包括什么_CSS学习 | ·下一条:css样式规则的具体格式正确的是_CSS学习

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有