<canvas id="clock" width="500" height="500"></canvas>
function drawClock(){
var canvas = document.querySelector("#clock");
var ctx = canvas.getContext("2d");
drawDial(ctx); //绘制变盘
// 绘制时针、分针、秒针
var pi = Math.PI;
var time = new Date();
var s = time.getSeconds();
var m = time.getMinutes();
var h = time.getHours();
var angleSecound = s*pi/30;
var angleMinute = m*pi/30 + angleSecound/60;
var angleHour = h*pi/6 + angleMinute/12; drawHand(angleSecound,190,2,"blue",ctx);
drawHand(angleMinute,150,4,"green",ctx);
drawHand(angleHour,80,6,"red",ctx); requestAnimationFrame(drawClock); }
function drawHand(angle,length,width,color,ctx){
var pi = Math.PI;
ctx.save();
ctx.translate(250,250);
ctx.rotate(-pi/2 + angle);
ctx.beginPath();
ctx.lineCap = "round";
ctx.moveTo(-4,0);
ctx.lineTo(length,0);
ctx.lineWidth = width;
ctx.strokeStyle = color;
ctx.stroke();
ctx.closePath();
ctx.restore();
}
function drawDial(ctx){
var pi = Math.PI;
ctx.clearRect(0,0,500,500);
ctx.save(); //绘制外周圆弧
ctx.translate(250,250);
ctx.strokeStyle="gray";
ctx.beginPath();
ctx.arc(0,0,200,0,2*pi);
ctx.stroke();
ctx.closePath(); //绘制刻度
for(var i=0;i<60;i++){
ctx.save();
ctx.rotate(-pi/2 + i*pi/30);
ctx.beginPath();
ctx.moveTo(180,0);
ctx.lineTo(195,0);
ctx.strokeStyle = i%5 ? "blue":"red";
ctx.lineWidth = i%5 ? "2":"4";
ctx.stroke();
ctx.closePath();
ctx.restore();
}
ctx.restore();
}
drawClock();

截图:

canvas 动画 时钟clock的更多相关文章

  1. [JS,Canvas]日历时钟

    [JS,Canvas]日历时钟 Html: <!doctype html> <html> <head> <meta charset="UTF-8&q ...

  2. 使用canvas绘制时钟

    使用canvas绘制时钟  什么使canvas呢?HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.<canvas> 标签只是图 ...

  3. [ZZ+CH] Html5 canvas+js 时钟

    总之新Blog入驻以后,又开始老习惯,到处折腾自定义的空间,放些东西. 想起以前大一的时候做过一个Javascript的时间显示器,现在想做一个时钟,当然现在老奸巨猾,会先去看一看有前辈写过没. 前辈 ...

  4. html5学习(一)--canvas画时钟

    利用空余时间学习一下html5. <!doctype html> <html> <head></head> <body> <canva ...

  5. canvas粒子时钟

    前面的话 本文将使用canvas实现粒子时钟效果 效果展示 点阵数字 digit.js是一个三维数组,包含的是0到9以及冒号(digit[10])的二维点阵.每个数字的点阵表示是7*10大小的二维数组 ...

  6. canvas画时钟,重拾乐趣!

    canvas时钟--效果图 一.先来简单介绍画时钟需要的canvas知识 1.在HTML页面中添加canvas元素,必须定义canvas元素的id属性值以便接下来的调用. HTML代码: <ca ...

  7. HTML5 Canvas爱心时钟代码

    这是一款数字时钟动画,数字又多个小爱心组成,又何问起整理,随着时间推进,每一秒钟新数字替换旧数字,旧数字离去使用天女散花动画,花是五颜六色的. 查看效果:http://hovertree.com/te ...

  8. 16个富有创意的HTML5 Canvas动画特效集合

    HTML5技术正在不断的发展和更新,越来越多的开发者也正在加入HTML5阵营,甚至在移动开发上HTML5的地位也是越来越重要了.HTML5中的大部分动画都是通过Canvas实现,因为Canvas就像一 ...

  9. canvas实现时钟

    最近在看新浪体育网球频道(http://sports.sina.com.cn/tennis/)的时候,看到了下面的劳力士广告的时钟是用canvas做的,于是也实现了一个简单的canvas时钟.直接上代 ...

随机推荐

  1. [Unity算法]弧度和角度

    参考链接: https://zhidao.baidu.com/question/576596182.html 1.弧度和角度的转换 2.sin函数 3.cos函数 4.tan函数 5.特殊的三角函数值 ...

  2. 50.纯 CSS 创作一个永动的牛顿摆

    原文地址:https://segmentfault.com/a/1190000015270808#articleHeader0 感想: 动画效果 + ::before + 2D转换 HTML code ...

  3. python学习笔记_week8

    一.Socket 当服务端传的东西大于客户端的最大值时怎么办?①改大buffer不行(有上限)②多传几次(用for循环必须要知道循环几次,所以不用for循环,用while) 服务端: import o ...

  4. IIS编辑器错误信息:CS0016解决方案

    错误信息: 运行asp.net程序时候,编译器错误消息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporar ...

  5. 将tgz文件解压到指定目录

    转:http://blog.csdn.net/zhenwenxian/article/details/4400404 tar在linux上是常用的打包.压缩.加压缩工具,他的参数很多,折里仅仅列举常用 ...

  6. VS的release工程设置为可调试

    参考:http://wineworm.blog.163.com/blog/static/29822754201111602252932/ VS2008 Release 工程调试修改方式: 1.项目—— ...

  7. smarty获取php中的变量

    {$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量.例如,直接在模板中访问页面请求变量.获取访问模板时的时间邮戳.直接访问PHP ...

  8. centos7 redis配置

    https://www.cnblogs.com/web424/p/6796993.html

  9. YUV420格式解析<转>

    在YUV420中,一个像素点对应一个Y,一个2X2的小方块对应一个U和V.对于所有YUV420图像,它们的Y值排列是完全相同的,因为只有Y的图像就是灰度图像. YUV420sp与YUV420p的数据格 ...

  10. idea 执行maven 命令

    如果当前账号不是超级管理员,这边需要执行系统用户变量, 输入安装文件bin路径 参考:https://blog.csdn.net/qq_19167629/article/details/7958490 ...