1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 使用canvas绘制动画时钟

使用canvas绘制动画时钟

时间:2024-07-02 11:37:00

相关推荐

使用canvas绘制动画时钟

一代码

<!DOCTYPE html ><head><meta charset="UTF-8" ><title>绘制动态时钟</title><script type="text/javascript">var canvas;var context;function window_onload() {canvas = document.getElementById("canvas");context = canvas.getContext('2d');setInterval("draw()",1000);}function draw() {var radius = Math.min(canvas.width / 2, canvas.height / 2) - 25;var centerx = canvas.width / 2;var centery = canvas.height / 2;context.clearRect(0, 0, canvas.width, canvas.height);context.save();context.fillStyle = '#efefef';context.strokeStyle = '#c0c0c0';context.beginPath();context.arc(centerx, centery, radius, 0, Math.PI*2, 0);context.fill();context.stroke();context.closePath();context.restore();var r = radius - 10;context.font = 'bold 16px 宋体';Drawtext('1', centerx + (0.5 * r), centery - (0.88 * r));Drawtext('2', centerx + (0.866 * r), centery - (0.5 * r));Drawtext('3', centerx + radius-10, centery);Drawtext('4', centerx + (0.866 * r), centery + (0.5 * r));Drawtext('5', centerx + (0.5 * r), centery + (0.866 * r));Drawtext('6', centerx , centery +r);Drawtext('7', centerx - (0.5 * r), centery + (0.866 * r));Drawtext('8', centerx - (0.866 * r), centery + (0.49 * r));Drawtext('9', centerx-radius+10, centery);Drawtext('10', centerx - (0.866 * r), centery - (0.50 * r));Drawtext('11', centerx - (0.51 * r), centery - (0.88 * r));Drawtext('12', centerx, 35);context.save();context.fillStyle = 'black';context.beginPath();context.arc(centerx, centery, 3, 0, Math.PI * 2, 0);context.closePath();context.fill();context.stroke();context.restore();//var date = new date();// var h = date.getHours();//var m = date.getMinutes();//var s = date.getSeconds();//var a = ((h / 12) * Math.PI * 2) - 1.57 + ((m / 60) * 0.524);var h = 13;var m = 24;var s = 59;var a = ((h / 12) * Math.PI * 2) - 1.57 + ((m / 60) * 0.524);context.save();context.lineWidth = 3;context.fillStyle = 'darkgray';context.strokeStyle = 'gray';context.beginPath();context.arc(centerx, centery, radius - 55, a + 0.01, a, 1);context.lineTo(centerx, centery);context.arc(centerx, centery, radius - 40, ((m / 60) * 6.27) - 1.57, ((m / 60) * 6.28) - 1.57, 0);context.lineTo(canvas.width / 2, canvas.height / 2);context.arc(centerx, centery, radius - 30, ((s / 60) * 6.27) - 1.57, ((s / 60) * 6.28) - 1.57, 0);context.lineTo(centerx, centery);context.closePath();context.fill();context.stroke();context.restore();var hours = String(h);var minutes = String(m);var seconds = String(s);if (hours.length == 1) h = '0' + h;if (minutes.length == 1) m = '0' + m;if (seconds.length == 1) s = '0' + s;var str = h + ':' + m + ':' + s;Drawtext(str, centerx, centery + radius + 12);}function Drawtext(text, x, y) {context.save();x -= (context.measureText(text).width / 2);y += 9;context.beginPath();context.translate(x, y);context.fillText(text, 0, 0);context.restore();}</script><style type="text/css">div{display:-moz-box;display:-webkit-box;-moz-box-pack:center;-webkit-box-pack:center;width:100%;}canvas{background-color:White;}</style></head><body onload="window_onload()"><div><h1>使用canvas元素绘制指针动画时钟</h1></div><div><canvas id="canvas" width="200px" height="200px"></canvas></div></body></html>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。