<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<canvas id="sb" width="1000px" height="800px" style="border:1px solid black"></canvas>
</body>
<script type="text/javascript">
var s = sb.getContext("2d");
function shijian(){
var arr = [6,7,8,9,10,11,12,1,2,3,4,5];
s.clearRect(0,0,1000,800);
s.beginPath();
s.lineWidth = "10";
s.arc(400,400,300,0,360,false);
s.stroke();
s.closePath();
s.save();
s.beginPath();
s.font = "20px 微软雅黑";
s.textAlign = "center";
s.textBaseline = "middle";
s.fillStyle = "black";
s.fill();
s.fillText("BeiJing",400,200);
s.closePath();
s.restore();
//画出一个圆心
s.save();
s.translate(400, 400);
s.beginPath();
s.arc(0,0,1,0,Math.PI * 2,false);
s.fillStyle = "#000";
s.fill();
s.stroke();
s.closePath();
s.restore();
//小时刻度
for(var i = 0 ; i < 12 ; i++){
s.save();
s.translate(400, 400);
s.rotate(Math.PI/180 * 30 * i);
s.beginPath();
s.moveTo(0,-300);
s.lineTo(0,-280);
s.lineWidth = "7";
s.stroke();
s.closePath();
s.restore();
}
//画小时数
var hour = [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2];
for(var i = 0 ; i < 12 ; i++){
s.beginPath();
//12个时针刻度
var rad = 2 * Math.PI / 12 * i;
//获得此弧度的横纵坐标
1.以3点为起点,顺时针方向
横坐标 = 圆的横坐标 + Math.cos(弧度) * 半径
纵坐标 = 圆的纵坐标 + Math.sin(弧度) * 半径
2.以6点为起点,逆时针方向
横坐标 = 圆的横坐标 + Math.sin(弧度) * 半径
纵坐标 = 圆的纵坐标 + Math.cos(弧度) * 半径
var x = Math.cos(rad) * 270;
var y = Math.sin(rad) * 270;
console.log(x,y);
s.font = "18px sans-serif"
s.textAlign = "center";
s.textBaseline = "middle";
s.fillStyle='red';
s.fill();
s.fillText(hour[i], x+400, y+400);
s.closePath();
}
//分刻度
for(var i = 0 ; i < 60 ; i++){
s.save();
s.translate(400, 400);
s.rotate(Math.PI /180 * 6 * i);
s.beginPath();
s.moveTo(0,-300);
s.lineTo(0, -290);
s.lineWidth = "5";
s.stroke();
s.closePath();
s.restore();
}
var time = new Date();
var hours = time.getHours();
var minutes = time.getMinutes();
var seconds = time.getSeconds();
hours = hours > 12 ? hours -12 + (minutes / 60) : hours +(minutes / 60);
//画秒针
s.save();
s.translate(400,400);
s.rotate(Math.PI / 30 * seconds);
s.beginPath();
s.moveTo(0,15);
s.lineTo(0,-150);
s.strokeStyle = "red";
s.lineWidth = "3";
s.stroke();
s.closePath();
s.restore();
//画分针
s.save();
s.translate(400,400);
s.rotate(Math.PI / 30 * minutes);
s.beginPath();
s.moveTo(0,15);
s.lineTo(0,-80);
s.strokeStyle = "blue";
s.lineWidth = "4";
s.stroke();
s.closePath();
s.restore();
//画时针
s.save();
s.translate(400,400);
s.rotate(Math.PI / 6 * hours);
s.beginPath();
s.moveTo(0,15);
s.lineTo(0,-60);
s.strokeStyle = "orange";
s.lineWidth = "5";
s.stroke();
s.closePath();
s.restore();
}
shijian()
setInterval(shijian, 1000)
</script>
</html>