var myCanvas = document.getElementById('myCanvas');
var c = myCanvas.getContext('2d');
function clock(){
//clearRect清除
c.clearRect(0,0,400,400);
var data = new Date();
var sec =data.getSeconds();
var min =data.getMinutes();
var hour=data.getHours();
//save() 方法保存当前图像状态的一份拷贝。
c.save();
//translate() 方法转换画布的用户坐标系统。
c.translate(200,200);
c.rotate(-Math.PI/2);
//外表盘
//beginPath() 方法在一个画布中开始子路径的一个新的集合。
c.beginPath();
//添加颜色
// c.strokeStyle = "pink";
c.arc(0,0,145,0,Math.PI*2);
c.moveTo(135,0);
c.arc(0,0,135,0,Math.PI*2);
// c.lineWidth = 12 ;
c.stroke();
//时钟刻度线
for(var i = 0;i<12;i++){
c.beginPath();
c.strokeStyle="#000";
//moveTo到lineTod的差值是距离
c.moveTo(100,0);
c.lineTo(120,0);
//stroke() 方法绘制当前路径。
c.stroke();
c.rotate(Math.PI/6);
//closePath() 方法关闭一条打开的子路径。
c.closePath();
}
//分钟刻度线
for(var i = 0;i<60;i++){
c.beginPath();
c.strokeStyle="#000";
c.moveTo(117,0);
c.lineTo(120,0);
//stroke() 方法绘制当前路径。
c.stroke();
c.rotate(Math.PI/30);
//closePath() 方法关闭一条打开的子路径。
c.closePath();
}
//画时针
hour = hour>12?hour-12:hour;
c.beginPath();
c.save();
c.rotate(Math.PI/6*hour+Math.PI/6*min/60+Math.PI/6*sec/3600);
c.moveTo(-20,0);
c.lineTo(50,0);
c.lineWidth=3;
c.stroke();
//restore() 方法将绘图状态置为保存值。
c.restore();
c.closePath();
//画分针
c.beginPath();
c.save();
c.rotate(Math.PI/30*min+Math.PI/30*sec/60);
c.moveTo(-30,0);
c.lineTo(70,0);
c.lineWidth=2;
c.stroke();
//restore() 方法将绘图状态置为保存值。
c.restore();
c.closePath();
//画秒针
c.beginPath();
c.save();
c.rotate(Math.PI/30*sec);
c.moveTo(-40,0);
c.lineTo(120,0);
c.stroke();
//restore() 方法将绘图状态置为保存值。
c.restore();
c.closePath();
//stroke() 方法绘制当前路径。再次绘制一次不然会出错
c.restore();
}
clock();
setInterval(clock,1000);
canvas制作时钟,带详细注释
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 最近学习了canvas之后,就用canvas制作了一个主题可配置化,可拖拽时钟。话不多说,直接看效果图: 具体的实...
- 这几天的工作学习对Canvas产生了很高的兴趣,拿回JS红宝书认真又学了一遍Canvas,恰巧书中例子是画一个小钟...
- 接下来这篇文章主要是结束如何轻松自定义一个View并使用Canvas绘制一个时钟的案例,话不多说先上图瞅瞅,一共实...
- 名称: 文件管理版本: 2.0作者: HEXT 描述: 这是本人第一个正式一点的安卓作品 功能包括文件列表 打开文...