Canvas - YuhNagi/HTML5 GitHub Wiki

<title>Canvas复习</title> <style> body{background:#000;} #c1{ background:#fff; } span{ color:#fff; } </style> <script> window.onload = function(){ var oC1=document.getElementById('c1'); var ctx=oC1.getContext('2d'); //获取绘制环境
//分钟有60格,时钟有12格

/* ctx.beginPath(); ctx.moveTo(200,200); ctx.arc(200,200,150,0,180Math.PI/180,false); ctx.closePath(); ctx.stroke();/ function toDraw(){ var x =200; var y=200; var r=150; var oDate = new Date(); var oHour = oDate.getHours(); var oMin = oDate.getMinutes(); var oSec = oDate.getSeconds(); // console.log(oHour); var oHvalue = (-90+ oHour*30+ oMin/3)Math.PI/180; var oMvalue = (-90 + oMin6 )Math.PI/180; var oSvalue = (-90 + oSec6) *Math.PI/180;

	ctx.clearRect(0,0,oC1.width,oC1.height);


//先画分钟的表盘
	ctx.beginPath();
	for(var i=0;i<60;i++){
		ctx.moveTo(x,y);
		ctx.arc(x,y,r,i*6*Math.PI/180,(i+1)*6*Math.PI/180,false);
	}
	ctx.stroke();
	ctx.closePath();

	ctx.beginPath();
	ctx.moveTo(x,y);
	ctx.arc(x,y,r*19/20,0,360*Math.PI/180,false);
	ctx.fillStyle = '#fff';
	ctx.fill();
	ctx.closePath();

//再来时钟的表盘
	ctx.beginPath();
	for(var i=0;i<12;i++){
		ctx.moveTo(x,y);
		ctx.arc(x,y,r,i*30*Math.PI/180,(i+1)*30*Math.PI/180,false);
	}	
	ctx.lineWidth =2;
	ctx.stroke();
	ctx.closePath();

	// 再画个白圆盖住时钟多出的线条部分
	ctx.beginPath();
	ctx.moveTo(x,y);
	ctx.arc(x,y,r*17/20,0,360*Math.PI/180,false)
	ctx.fillStyle = '#fff';
	ctx.fill();
	ctx.closePath();

	// 接下来画时针,分针和秒针
	ctx.beginPath();
	ctx.moveTo(x,y);
	ctx.lineWidth = 4;
	ctx.arc(x,y,r*10/20,oHvalue,oHvalue);
	//用lineTo画的话不好求弧度。让它的弧度一样就不会画出弧形,而只是直线了。
	ctx.stroke();
	ctx.closePath();

	ctx.beginPath();
	ctx.moveTo(x,y);
	ctx.arc(x,y,r*13/20,oMvalue,oMvalue);
	ctx.lineWidth = 3;
	ctx.stroke();
	ctx.closePath();

	ctx.beginPath();
	ctx.moveTo(x,y);
	ctx.arc(x,y,r*15/20,oSvalue,oSvalue);
	ctx.lineWidth = 1;
	ctx.stroke();
	ctx.closePath();
}

toDraw();

setInterval(function(){
	toDraw();
},1000);

} </script>

您的浏览器不支持Canvas,请升级...
⚠️ **GitHub.com Fallback** ⚠️