canvas怎么绘制钟表
短信预约 -IT技能 免费直播动态提醒
这篇文章将为大家详细讲解有关canvas怎么绘制钟表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
canvas如何绘制钟表的方法,分享给大家,具体如下:
效果图为
上代码:
var canvas = document.getElementById('canvas');var ctx = canvas.getContext('2d');var year,month,day,hour,second,minute;// 绘制表盘function drawClockPie(){ ctx.beginPath(); ctx.lineWidth = 2; ctx.strokeStyle = '#333'; ctx.arc(150,150,146,0,2*Math.PI); ctx.stroke(); ctx.closePath(); ctx.beginPath(); ctx.arc(150,150,6,0,2*Math.PI); ctx.fillStyle = 'red'; ctx.fill(); ctx.closePath();}// 绘制时刻度function drawClockHours(){ for(var i = 0,l = 12; i < 12; i++){ ctx.save(); ctx.translate(150,150); ctx.rotate(i*1/12*2*Math.PI); ctx.beginPath(); ctx.lineWidth = 5; ctx.strokeStyle = '#333'; ctx.moveTo(0,-140); ctx.lineTo(0,-125); ctx.stroke(); ctx.closePath(); ctx.restore(); }}// 绘制分刻度function drawClockMins(){ for(var i = 0,l = 60; i < 60; i++){ ctx.save(); ctx.translate(150,150); ctx.rotate(i*1/60*2*Math.PI); ctx.beginPath(); ctx.lineWidth = 3; ctx.strokeStyle = '#333'; ctx.moveTo(0,-140); ctx.lineTo(0,-133); ctx.stroke(); ctx.closePath(); ctx.restore(); }}// 绘制时针function drawHourPin(){ ctx.save(); ctx.translate(150,150); ctx.rotate((hour*60*60+minute*60+second)/(12*60*60)*2*Math.PI); ctx.beginPath(); ctx.strokeStyle = '#333'; ctx.lineWidth = 3; ctx.moveTo(0,0); ctx.lineTo(0,-40); ctx.stroke(); ctx.closePath(); ctx.restore();}// 绘制分针function drawMinPin(){ ctx.save(); ctx.translate(150,150); ctx.rotate((minute*60+second)/(60*60)*2*Math.PI); ctx.beginPath(); ctx.strokeStyle = '#333'; ctx.lineWidth = 2; ctx.moveTo(0,0); ctx.lineTo(0,-60); ctx.stroke(); ctx.closePath(); ctx.restore();}// 绘制秒针function drawSecPin(){ ctx.save(); ctx.translate(150,150); ctx.rotate(second/60*2*Math.PI); ctx.beginPath(); ctx.strokeStyle = 'red'; ctx.lineWidth = 1; ctx.moveTo(0,0); ctx.lineTo(0,-80); ctx.stroke(); ctx.closePath(); ctx.restore();}// 绘制时间文字function drawText(){ hour = hour >= 12 ? hour - 12 : hour; var time = '现在是' + year + '年' + month + '月' + day + '日' + hour + '时' + minute + '分' + second + '秒'; ctx.font = '15px 黑体'; ctx.fillText(time,24,350);}// 获取时间function getTimes(){ var date = new Date(); year = date.getFullYear(); month = date.getMonth() + 1; day = date.getDate(); hour = date.getHours(); minute = date.getMinutes(); second = date.getSeconds();}setInterval(function(){ ctx.clearRect(0,0,600,600); drawClockPie(); drawClockHours(); drawClockMins(); getTimes(); drawText(); drawHourPin(); drawMinPin(); drawSecPin();},1000);
注:
当然时间也可以不用这样每隔一秒就获取,直接获取一次按秒递增就行。
关于“canvas怎么绘制钟表”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341