使用canvas绘制超炫时钟

时间:2016.04.25 发布人:va**sk

使用canvas绘制超炫时钟

已解决问题

谷歌va**sk用户在2016.04.25提交了关于“末日蟑螂使用canvas绘制超炫时钟”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-10-29T17:51:02。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,滴水之恩,来日我当涌泉相报 !

希望以下的回答,能够帮助你。

第1个回答

用户名:cwz苹果  

先上效果图:

代码如下:
<!府引鱼铁尽学细DOCTYPEhtm探卫编训众田采离l>
<html>
<head>
<metacharset="utf-8">
<title>canvas钟表</title>
<metaname="Keywords"content="">
<m明使述香etaname="author"content="@my_programmer">
<styletype="text/css">
body{margin:0;}
</style>
</head>
<bodyonload="run()">
<c问答anvasid="ca如争万染nvas"width=40超磁定0height=黄400style="bord试自觉急些er:1px#cccsol如案儿刻赵id;">如果你看到这段文完王华客刚据医错文字,说明你的浏览器弱爆了!</canvas>
<scr间验ipt>
window.onload=draw;
functiondraw(){
varcanvas=document.getElementById('canvas');
varcontext=canvas.getContext('2d');
***.s**e();///////////////////////////////////保存
context.translate(200,200);
vardeg任七它厂茶服维类径=2*Math.PI/12;
///////////德//////////////////////////////////////举赵杨措略/表盘
***.s**e();
context.begi西衡nPath();
for觉争简(vari=0;i<13;i++){
varx=Math.sin(i*deg);
vary=-Math.cos(i*deg);
context.lineTo(x*150,y*150);
}
varc=context.createRadialGradient(0,0,0,0,0,130);
c.addColorStop(0,"#22f");
c.addColorStop(1,"#0ef")
context.fillStyle=c;
context.fill();
context.closePath();
context.restore();
//////////////////////////////////////////////////数字
***.s**e();
context.beginPath();
for(vari=1;i<13;i++){
varx1=Math.sin(i*deg);
vary1=-Math.cos(i*deg);
context.fillStyle="#fff";
context.font="bold20pxCalibri";
context.textAlign='center';
context.textBaseline='middle';
context.fillText(i,x1*120,y1*120);
}
context.closePath();
context.restore();
//////////////////////////////////////////////////大刻度
***.s**e();
context.beginPath();
for(vari=0;i<12;i++){
varx2=Math.sin(i*deg);
vary2=-Math.cos(i*deg);
context.moveTo(x2*148,y2*148);
context.lineTo(x2*135,y2*135);
}
context.strokeStyle='#fff';
context.lineWidth=4;
context.stroke();
context.closePath();
context.restore();
//////////////////////////////////////////////////小刻度
***.s**e();
vardeg1=2*Math.PI/60;
context.beginPath();
for(vari=0;i<60;i++){
varx2=Math.sin(i*deg1);
vary2=-Math.cos(i*deg1);
context.moveTo(x2*146,y2*146);
context.lineTo(x2*140,y2*140);
}
context.strokeStyle='#fff';
context.lineWidth=2;
context.stroke();
context.closePath();
context.restore();
///////////////////////////////////////////////////文字
***.s**e();
context.strokeStyle="#fff";
context.font='34pxsans-serif';
context.textAlign='center';
context.textBaseline='middle';
context.strokeText('canvas',0,65);
context.restore();
/////////////////////////////////////////////////newDate
vartime=newDate();
varh=(time.geth**ours()%12)*2*Math.PI/12;
varm=time.getMi**tes()*2*Math.PI/60;
vars=time.getSeconds()*2*Math.PI/60;</p><p>////////////////////////////////////////////////时针
***.s**e();
context.rotate(h+m/12+s/720);
context.beginPath();
context.moveTo(0,6);
context.lineTo(0,-85);
context.strokeStyle="#fff";
context.lineWidth=6;
context.stroke();
context.closePath();
context.restore();
//////////////////////////////////////////////分针
***.s**e();
context.rotate(m+s/60);
context.beginPath();
context.moveTo(0,8);
context.lineTo(0,-105);
context.strokeStyle="#fff";
context.lineWidth=4;
context.stroke();
context.closePath();
context.restore();
/////////////////////////////////////////////秒针
***.s**e();
context.rotate(s);
context.beginPath();
context.moveTo(0,10);
context.lineTo(0,-120);
context.strokeStyle="#fff";
context.lineWidth=2;
context.stroke();
context.closePath();
context.restore();
context.restore();/////////////////////////////栈出
setTimeout(draw,1000);/////////////////////////////计时器</p><p>}</p><p></script>
</body>
</html>