自己做个时钟改进版-html5的canvas
2013-12-26 09:27
537 查看
上一版本的时钟做的太简单了,以至于要加点什么东西都不行或者很难了。后来我改进了一下,换了一个思路。
用画圆的方法确实可以做出来,但是后续加东西就比较麻烦了。不如一次性的做好吧。
具体的思路就是利用路径一次性的画好。
代码如下:
用画圆的方法确实可以做出来,但是后续加东西就比较麻烦了。不如一次性的做好吧。
具体的思路就是利用路径一次性的画好。
代码如下:
function clock() { var now = new Date(); var ctx = document.getElementById('canvas').getContext('2d'); ctx.save(); ctx.clearRect(0, 0, 1000, 760); ctx.translate(500, 370); //ctx.scale(0.4, 0.4); ctx.rotate(-Math.PI / 2); ctx.strokeStyle = "black"; ctx.fillStyle = "white"; ctx.lineWidth = 8; ctx.lineCap = "round"; // Hour marks ctx.save(); for (var i = 0; i < 12; i++) { ctx.beginPath(); ctx.rotate(Math.PI / 6); ctx.moveTo(300, 0); ctx.lineTo(320, 0); ctx.stroke(); } ctx.restore(); // Minute marks ctx.save(); ctx.lineWidth = 5; for (i = 0; i < 60; i++) { if (i % 5 != 0) { ctx.beginPath(); ctx.moveTo(317, 0); ctx.lineTo(320, 0); ctx.stroke(); } ctx.rotate(Math.PI / 30); } ctx.restore(); var sec = now.getSeconds(); var min = now.getMinutes(); var hr = now.getHours(); hr = hr >= 12 ? hr - 12 : hr; ctx.fillStyle = "black"; // write Hours ctx.save(); ctx.rotate(hr * (Math.PI / 6) + (Math.PI / 360) * min + (Math.PI / 21600) * sec) ctx.lineWidth = 14; ctx.beginPath(); ctx.moveTo(-20, 0); ctx.lineTo(180, 0); ctx.stroke(); ctx.restore(); // write Minutes ctx.save(); ctx.rotate((Math.PI / 30) * min + (Math.PI / 1800) * sec) ctx.lineWidth = 10; ctx.beginPath(); ctx.moveTo(-28, 0); ctx.lineTo(222, 0); ctx.stroke(); ctx.restore(); // Write seconds ctx.save(); ctx.rotate(sec * Math.PI / 30); ctx.strokeStyle = "#D40000"; ctx.fillStyle = "#D40000"; ctx.lineWidth = 6; ctx.beginPath(); ctx.moveTo(-30, 0); ctx.lineTo(283, 0); ctx.stroke(); ctx.beginPath(); ctx.arc(0, 0, 10, 0, Math.PI * 2, true); ctx.fill(); ctx.beginPath(); ctx.arc(275, 0, 10, 0, Math.PI * 2, true); ctx.stroke(); ctx.fillStyle = "#555"; ctx.arc(0, 0, 3, 0, Math.PI * 2, true); ctx.fill(); ctx.restore(); ctx.beginPath(); ctx.lineWidth = 14; ctx.strokeStyle = '#325FA2'; ctx.arc(0, 0, 335, 0, Math.PI * 2, true); ctx.stroke(); ctx.restore(); }
相关文章推荐
- 自己做个时钟-html5的canvas
- 轻松实现HTML5时钟(分享下自己对canvas的理解,原来没你想像的那么难哦)
- [js高手之路]html5 canvas动画教程 - 自己动手做一个类似windows的画图软件
- 分享个HTML5 canvas时钟的代码
- JavaScript html5 canvas绘制时钟效果(二)
- HTML5 Canvas爱心时钟代码
- HTML5 Canvas LED 时钟
- JavaScript html5 canvas绘制时钟效果(二)
- 玩转html5(四)----使用canvas画一个时钟
- 使用HTML5 Canvas绘制一个时钟
- 通过html5 canvas绘制时钟
- HTML5 canvas 实现同步时钟
- 使用html5 canvas 画时钟代码实例分享
- html5用canvas画一个时钟
- 用HTML5的canvas实现一个炫酷时钟效果
- HTML5-炫丽的时钟效果Canvas绘图与动画
- HTML5 Canvas 绘制时钟
- HTML5 canvas时钟钟表!
- 玩转html5(四)----使用canvas画一个时钟(可以动的哦!)
- Html5 Canvas时钟绘制