<canvas id="clock" width="500" height="500" style="background-color: yellow"></canvas>
 var clock=document.getElementById("clock");
var cxt=clock.getContext("2d");
function drawNow(){
var now=new Date();
var hour=now.getHours();
var min=now.getMinutes();
var sec=now.getSeconds();
hour=hour>12?hour-12:hour;
hour=hour+min/60;
//表盘(蓝色)
cxt.lineWidth=10;
cxt.strokeStyle="blue"
cxt.beginPath();
cxt.arc(250,250,200,0,360,false);
cxt.closePath();
cxt.stroke();
//刻度
//时刻度
for(var i=0;i<12;i++){
cxt.save();
cxt.lineWidth=7;
cxt.strokeStyle="black";
cxt.translate(250,250);
cxt.rotate(i*30*Math.PI/180);//旋转角度 角度*Math.PI/180=弧度
cxt.beginPath();
cxt.moveTo(0,-170);
cxt.lineTo(0,-190);
cxt.closePath();
cxt.stroke();
cxt.restore();
}
//分刻度
for(var i=0;i<60;i++){
cxt.save();
//设置分刻度的粗细
cxt.lineWidth=5;
//重置画布原点
cxt.translate(250,250);
//设置旋转角度
cxt.rotate(i*6*Math.PI/180);
//画分针刻度
cxt.strokeStyle="black";
cxt.beginPath();
cxt.moveTo(0,-180);
cxt.lineTo(0,-190);
cxt.closePath();
cxt.stroke();
cxt.restore();
} //时针
cxt.save();
// 设置时针风格
cxt.lineWidth=7;
cxt.strokeStyle="black";
cxt.translate(250,250);
cxt.rotate(hour*30*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-140);
cxt.lineTo(0,10);
cxt.closePath();
cxt.stroke();
cxt.restore();
//分针
cxt.save();
cxt.lineWidth=5;
cxt.strokeStyle="black";
//设置异次元空间分针画布的中心
cxt.translate(250,250);
cxt.rotate(min*6*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-160);
cxt.lineTo(0,15);
cxt.closePath();
cxt.stroke()
cxt.restore(); //秒针
cxt.save();
//设置秒针的风格
//颜色:红色
cxt.strokeStyle="red";
cxt.lineWidth=3;
//重置原点
cxt.translate(250,250);
//设置角度
//cxt.rotate(330*Math.PI/180);
cxt.rotate(sec*6*Math.PI/180); cxt.beginPath();
cxt.moveTo(0,-170);
cxt.lineTo(0,20);
cxt.closePath();
cxt.stroke();
//画出时针,分针,秒针的交叉点
cxt.beginPath();
cxt.arc(0,0,5,0,360,false);
cxt.closePath();
//设置填充
cxt.fillStyle="gray";
cxt.fill();
//cxt.strokeStyle="red";
cxt.stroke(); //画出秒针的小圆点
cxt.beginPath();
cxt.arc(0,-140,5,0,360,false);
cxt.closePath();
//设置填充
cxt.fillStyle="gray";
cxt.fill();
//cxt.strokeStyle="red";
cxt.stroke(); cxt.restore(); }
function drawClock(){
cxt.clearRect(0,0,500,500);
drawNow();
}
drawNow();
setInterval(drawClock,1000);

最新文章

  1. 关于javascript中的this关键字
  2. .jshintrc配置
  3. 找出链表中倒数第 k 个结点
  4. BZOJ 2331 地板
  5. iOS多线程GCD 研究
  6. 使用mii-tool设置网卡速率
  7. javaee学习-servlet初始化参数
  8. 打开自定义链接新窗口(safari JS prompt的坑!)2016.03.08
  9. OCA读书笔记(10) - 管理UNDO数据
  10. hdu 1251(字典树)
  11. 【Alpha】——Seventh Scrum Meeting
  12. 如何用命令将本地项目上传到github
  13. 安装使用pyclone进行克隆演化推断
  14. MT【322】绝对值不等式
  15. Pandas分组级运算和转换
  16. How to trigger an Animation when TextBlock’s Text is changed during a DataBinding
  17. 流畅的Python读书笔记(二)
  18. flask中的request和response
  19. Vue中父子组件执行的先后顺序探讨
  20. 【Python】Java程序员学习Python(三)— 基础入门

热门文章

  1. 手机通过笔记本开的WIFI访问TOMCAT服务器站点示例
  2. Kafka消费者生产者实例
  3. 基于tensorflow的增强学习
  4. Android常见问题——找不到HttpClient和okHttp的包
  5. 数据链路层、ARP/RARP、ICMP、ping和traceroute
  6. 【剑指offer】反转链表,C++实现(链表)
  7. nginx在使用proxy_pass的情况下开启error_page
  8. java中守护线程的一些概念和用法
  9. softmax与logistic关系
  10. Hexo+GitHub+Netlify一站式搭建属于自己的博客网站