时钟
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
canvas{
display: block;
margin: 0 auto;
}
</style>
</head>
<body>
<canvas id="canvas" width="800" height="800"></canvas>
<script>
var canvas=document.getElementById("canvas");
var context=canvas.getContext("2d");
var width=canvas.width;
var height=canvas.height;
var r= width / 2;
function fun(){
context.save()
context.translate(r,r);
context.beginPath();
context.strokeStyle="purple";
context.lineWidth=12;
context.arc(0,0,r-12,0, Math.PI * 2)
context.closePath();
context.stroke();
var hour=[3,4,5,6,7,8,9,10,11,12,1,2];
for(var i=0;i<hour.length;i++){
var rad=Math.PI * 2 / 12 *i;
var x=Math.cos(rad)*(r-70);
var y=Math.sin(rad)*(r-70);
context.font="30px Arial";
context.fillStyle="darkslategray";
context.textAlign="center";
context.textBaseline="middle";
context.fillText(hour[i],x,y)
}
for(var j=0;j<60;j++){
var rad1=Math.PI * 2 / 60 * j;
var x1=Math.cos(rad1)*(r-40);
var y1=Math.sin(rad1)*(r-40);
context.beginPath();
if(j % 5 == 0){
context.fillStyle="purple";
context.arc(x1,y1,10,0,Math.PI*2);
context.closePath();
context.fill();
}
else{
context.fillStyle="mediumslateblue";
context.arc(x1,y1,5,0,Math.PI*2);
context.closePath();
context.fill();
}
}
}
function DrawHour(hour,minute){
context.save();
context.beginPath();
var rad = Math.PI * 2 / 12 * hour;
var radmin=Math.PI * 2 / 12 / 60 * minute;
context.lineWidth = 2;
context.lineCap = "round";
context.rotate(rad + radmin);
context.moveTo(-7,50);
context.lineTo(4,45);
context.lineTo(1,-r/2);
context.lineTo(-3,-r/2+5);
context.fill();
context.restore();
}
function DrawMinute(minute){
context.save();
context.beginPath();
context.fillStyle="indigo"
var rad = Math.PI * 2 / 60 * minute;
context.lineWidth = 2;
context.lineCap = "round";
context.rotate(rad);
context.moveTo(-5,50);
context.lineTo(3,45);
context.lineTo(2,-r+90);
context.lineTo(-1,-r+95);
context.fill();
context.restore();
}
function DrawSecond(second){
context.save();
context.beginPath();
context.fillStyle="lightslategray"
var rad = Math.PI * 2 / 60 * second;
context.lineWidth = 2;
context.lineCap = "round";
context.rotate(rad);
context.moveTo(-3,50);
context.lineTo(1,45);
context.lineTo(1,-r+50);
context.lineTo(-1,-r+55);
context.fill();
context.restore();
}
function DrawCenter(){
context.beginPath();
context.fillStyle="black"
context.arc(0,0,5,0,Math.PI * 2);
context.closePath();
context.fill();
}
function DrawAll(){
context.clearRect(0,0,width,height);
var date=new Date();
var hour=date.getHours();
var minutes=date.getMinutes();
var second=date.getSeconds();
fun();
DrawHour(hour,minutes);
DrawMinute(minutes);
DrawSecond(second);
DrawCenter();
context.restore();
}
DrawAll();
setInterval(DrawAll,1000)
</script>
</body>
</html>