HTML5 组件Canvas实现电子钟
admin
2023-06-12 01:01:41
0

基本思路:

首先绘制一个矩形背景,设置颜色为灰色。在背景上绘制一个简单的矩形外边框,然后再绘

制一个内边框,接着加载选定的图像做为电子钟内部的背景图片。然后开始绘制时钟刻度,

绘制分钟刻度,最后获取当前系统时间,绘制时分秒三个手柄。

 

技术要点:

使用HTML5的Canvas 2D绘制对象,主要使用context.save()与context.restore()方法来保存

绘制状态和重置绘制状态,使用Transform和fillRect()方法来绘制时钟和分钟刻度。使用

drawImage()方法来绘制背景图片,使用setTimeout()方法来刷新时间显示。

 

代码详解:

 获取HTML5 Canvas绘制对象的代码如下:

var canvas = document.getElementById("canvas1"); ctx = canvas.getContext("2d"); ctx.clearRect(0, 0, 500, 500);

绘制时钟刻度的代码如下:

		    var sin = Math.sin(Math.PI/6);   		    var cos = Math.cos(Math.PI/6);  		    ctx.translate(245, 245); 		    for (var i=0; i <= 12; i++) {   		    	// top 				ctx.fillRect(160,-7.5,30,10); 				ctx.strokeRect(160,-7.5,30,10); 				ctx.transform(cos, sin, -sin, cos, 0, 0);  	 		    }
绘制分钟分钟刻度的代码如下:

		    var sin = Math.sin(Math.PI/30);   		    var cos = Math.cos(Math.PI/30);  		    for (var i=0; i <= 60; i++) {   				ctx.fillRect(170,-5,10,2); 				ctx.transform(cos, sin, -sin, cos, 0, 0); 	 		    }

保存制状态代码如下:

ctx.translate(245, 245); ctx.save();
恢复绘制状态代码如下:

ctx.restore();

运行效果如下:

HTML5 组件Canvas实现电子钟


程序完全源代码如下:

     	electronic clock   

不足之处:

每次都刷新加载image对象不怎么好,我是在google浏览器中测试的,建议在

google浏览器中运行上面代码。


相关内容

热门资讯

华为正式发表半导体领域“新定律... 据凤凰卫视报道,5月25日,2026国际电路与系统研讨会在上海举行,华为公司董事、半导体业务部总裁何...
满身泥浆的他闪闪发光 持续强降雨致山洪暴发,云南某村小组长田如良带领全村群众安全转移,自己却一度被泥石流吞没,成了“泥人守...
山西矿难的根源在哪里?学者吁打... 据凤凰卫视报道,沁源发生特大煤矿瓦斯爆炸事故后,山西决定对全省煤矿领域展开安全风险的“彻查整治”。有...
俄方称将对基辅军工联合体发动打... △基辅(资料图)当地时间25日,俄罗斯外交部发布通报称,俄军将对乌克兰首都基辅的军工联合体发动一系列...
深耕特色兴实业 因地制宜谱新篇 近期,全国各地立足资源禀赋、深耕产业赛道,处处涌动着产业升级、增收致富的蓬勃生机。 向新攀登 河南跑...
荣耀600全系搭载教科书级护眼... 快科技5月25日消息,荣耀600系列于今晚正式发布,全系配备教科书级护眼屏。 据悉,荣耀600系列首...
近万“青鸟”上街参加挺军购游行... 海峡导报综合报道 为抗议在野阵营通过7800亿元(新台币,下同)特别预算,台湾亲绿民团23日下午发起...
华为公布半导体领域重大突破 5月25日,2026国际电路与系统研讨会在上海举行,华为公司董事、半导体业务部总裁何庭波在题为《半导...
全焦段4K实况照片+8000m... 一、前言:全能无短板!荣耀600 Pro闪亮登场 现如今的中高端手机市场,可以说是卷得五花八门。大家...
强烈信号,家长们现在要连夜排队... 北京家长凌晨3点排队,只为孩子能上个中职学校。5月10日这天,是北京昌平职业技术学校自主招生面试日:...