<!DOCTYPE html>
<html>
<head></head>
<body>
<canvas id="clock" width="500" height="500"></canvas>
<script>
var clock = document.getElementById("clock");
var ctx = clock.getContext("2d");
function drawClock(){
//清除画布
ctx.clearRect(0,0,500,500);
var now = new Date();
var sec = now.getSeconds();
var min = now.getMinutes();
var hour = now.getHours(); // 小时必须获取浮点类型
hour = hour + min/60 ;
//将二十四小时进制转换为12小时进制
if(hour > 12){
hour -= 12 ;
}
// 表盘
ctx.lineWidth = 10 ;
ctx.strokeStyle = "blue"
ctx.beginPath();
ctx.arc(250,250,200,0,360,false);
ctx.closePath();
ctx.stroke();
// 刻度 时刻度
for(var i=0; i<12; i++){
ctx.save();
ctx.lineWidth = 7 ;
ctx.strokeStyle= "#000";
ctx.translate(250,250) ; // 设置旋转圆点
ctx.rotate(i*30*Math.PI/180); //设置旋转角度 : 角度*Math.PI/180 = 弧度
ctx.beginPath();
ctx.moveTo(0,-170);
ctx.lineTo(0,-190);
ctx.closePath();
ctx.stroke();
ctx.restore();
}
// 分刻度
for(var i=0;i<60;i++){
ctx.save();
ctx.lineWidth= 5 ;
ctx.strokeStyle = "#000" ;
ctx.translate(250,250);
ctx.rotate(i*6*Math.PI/180);
ctx.beginPath();
ctx.moveTo(0,-180);
ctx.lineTo(0,-190);
ctx.stroke();
ctx.closePath();
ctx.restore();
}
// 时针
ctx.save();
ctx.lineWidth = 7 ;
ctx.strokeStyle = "#000";
ctx.translate(250,250); //设置异次元空间的0,0点
ctx.rotate(hour*30*Math.PI/180);
ctx.beginPath();
ctx.moveTo(0,-140);
ctx.lineTo(0,10);
ctx.closePath();
ctx.stroke();
ctx.restore();
//分针
ctx.save();
ctx.lineWidth = 5 ;
ctx.strokeStyle = "#000";
ctx.translate(250,250); //设置异次元空间的0,0点
ctx.rotate(min*6*Math.PI/180);
ctx.beginPath();
ctx.moveTo(0,-160);
ctx.lineTo(0,15);
ctx.closePath();
ctx.stroke();
ctx.restore();
//秒针
ctx.save();
ctx.lineWidth = 3 ;
ctx.strokeStyle = "#F00";
ctx.translate(250,250); //设置异次元空间的0,0点
ctx.rotate(sec*6*Math.PI/180);
ctx.beginPath();
ctx.moveTo(0,-170);
ctx.lineTo(0,20);
ctx.closePath();
ctx.stroke();
ctx.beginPath();
ctx.arc(0,0,5,0,360,false);
ctx.closePath();
ctx.fillStyle="grey";
ctx.fill();
ctx.stroke();
ctx.beginPath();
ctx.arc(0,-150,5,0,360,false);
ctx.closePath();
ctx.fillStyle="grey";
ctx.fill();
ctx.stroke();
ctx.restore();
}
drawClock();
setInterval(drawClock,1000);
</script>
</body>
</html>
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。