<!DOCTYPE html>
<html> <head>
<meta charset="utf-8" />
<title></title>
</head> <body>
<canvas id="c1" width="600" height="600"></canvas>
</body>
<script type="text/javascript">
var oC = document.getElementById('c1');
var oGC = oC.getContext('2d'); function drawWatch(){
var x = 200,y = 200,r = 100;
//清除上次的画布 优化性能
oGC.clearRect(0,0,oC.width,oC.height);
//日期处理 时分秒
var dateT=new Date();
var hour=dateT.getHours();
var min=dateT.getMinutes();
var sec=dateT.getSeconds();
//转化为弧度
var hourValue=(hour*30-90+min/2)*Math.PI/180;
var minValue=(min*6-90)*Math.PI/180;
var secValue=(sec*6-90)*Math.PI/180; // 表盘--每6°的刻度线
oGC.beginPath();
for(var i = 0; i < 60; i++) {
oGC.moveTo(x, y);
oGC.arc(x, y, r, 6 * i * Math.PI / 180,
6 * (i + 1) * Math.PI / 180);
};
oGC.closePath();
oGC.stroke();
//覆盖 最外圈刻度线
oGC.fillStyle = "white";
oGC.beginPath();
oGC.moveTo(x, y);
oGC.arc(x, y, r*19/20, 0, 360, false);
oGC.fill();
oGC.closePath();
// oGC.stroke(); //时针刻度线
oGC.beginPath();
oGC.lineWidth = 3;
for(var i = 0; i < 12; i++) {
oGC.moveTo(x, y);
oGC.arc(x, y, r, 30 * i * Math.PI / 180, 30 * (i + 1) * Math.PI / 180);
};
oGC.closePath();
oGC.stroke();
//覆盖 时针刻度线
oGC.beginPath();
oGC.strokeStyle="white";//边框
oGC.arc(x,y,r*18/20,0*Math.PI,2*Math.PI,false);
oGC.fillStyle="white";
oGC.fill();
oGC.closePath();
// oGC.stroke(); //shi针
oGC.lineWidth=5;
oGC.strokeStyle="red";
oGC.beginPath();
oGC.moveTo(x,y);
oGC.arc(x,y,r*0.5,hourValue,hourValue,false);
oGC.closePath();
oGC.stroke();
// fen针
oGC.lineWidth=3;
oGC.strokeStyle="orange";
oGC.beginPath();
oGC.moveTo(x,y);
oGC.arc(x,y,r*0.7,minValue,
minValue,false);
oGC.closePath();
oGC.stroke();
// 秒针
oGC.lineWidth=2;
oGC.strokeStyle="black";
oGC.beginPath();
oGC.moveTo(x,y);
oGC.arc(x,y,r*0.9,secValue,
secValue,false);
oGC.closePath();
oGC.stroke();
}
drawWatch();
setInterval(drawWatch,1000);
</script> </html>

  

canvas制作表盘的更多相关文章

  1. 使用Canvas制作时钟动画

    复习Javascript到Canvas的知识点,看到一个使用Canvas绘制的静态时钟例子,便想将其变成动态显示系统时间的时钟动画.另外再配上数字显示的时钟,一个小的时钟模块的诞生了!目前的界面还比较 ...

  2. canvas画画板,canvas画五角星,canvas制作钟表、Konva写钟表

    制作一个画画板,有清屏有橡皮擦有画笔可以换颜色 style样式 <head> <meta charset="UTF-8"> <title>画画板 ...

  3. 用Canvas制作简单的画图工具

    今天用Canvas制作了一个画图工具,非常简单,功能也不是很多,主要有背景网格,画线,画圆,画矩形和画圆角矩形,也用到了canvas的一些基本知识,在这里一一列举. 1.线段的绘制: 如何绘制真正的1 ...

  4. 酷!使用 jQuery & Canvas 制作相机快门效果

    在今天的教程中,我们将使用 HTML5 的 Canvas 元素来创建一个简单的摄影作品集,它显示了一组精选照片与相机快门的效果.此功能会以一个简单的 jQuery 插件形式使用,你可以很容易地整合到任 ...

  5. 如何使用 HTML5 Canvas 制作水波纹效果

    今天,我们继续分享 JavaScript 实现的效果例子,这篇文章会介绍使用 JavaScript 实现水波纹效果.水波效果以图片为背景,点击图片任意位置都会触发.有时候,我们使用普通的 Javasc ...

  6. 使用canvas制作在线画板

    canvas绘图的强大功能,让人前仆后继的去研究它.代码全部加起来不足百行.还用到了h5中的<input type="color"/>和<input type=& ...

  7. 怎样用HTML5 Canvas制作一个简单的游戏

    原文连接: How To Make A Simple HTML5 Canvas Game 自从我制作了一些HTML5游戏(例如Crypt Run)后,我收到了很多建议,要求我写一篇关于怎样利用HTML ...

  8. 利用canvas制作乱跑的小球

    canvas制作乱跑的小球 说明:将下面的代码放到html的body就可以,键盘控制上(W)下(S)左(A)右(D) <body> <canvas id="canvas&q ...

  9. H5上传图片并使用canvas制作海报

    马上就要"十一"国庆节了,又恰逢公司已经三周岁了,所以市场部和产品共同策划了一个"正青春,共成长"的主题代言活动,准备在国庆节以及中秋节期间让公司员工和用户为公 ...

随机推荐

  1. day 30 HTML

    HTML: 超文本标记语言(Hyper Text Markup Language) Html基本结构 <!DOCTYPE html> <html> <!-- 定义HTML ...

  2. list转map

    参考https://cloud.tencent.com/developer/article/1033706 import java.lang.reflect.Field; import java.ut ...

  3. chorem浏览器无法下载

    下载的时候指定字节的长度 context.Response.AddHeader("Content-Length", bytes.Length.ToString()); contex ...

  4. c# 24种设计模式5原型模式(Prototype)

    前言 原型模式其实C# Object中已经提供了一个Clone( )方法,平时很少用到,最近读Retrofit源码时候看到有这种使用方式. 定义 原型模式就是在系统clone()标记的基础上,对Clo ...

  5. FastDFS集群安装

    集群安装1.FastDFS安装 Tracker,nginx 192.168.56.113       192.168.56.114 storage group1      192.168.56.115 ...

  6. (O)JS核心:call、apply和bind

    1. var func=function(a,b,c){ console.log([a,b,c]); }; func.apply(null,[1,2,3]); //[1,2,3] func.call( ...

  7. RNA-seq流程需要进化啦!

    RNA-seq流程需要进化啦! Posted on 2015年9月25日 Tophat 首次被发表已经是6年前 Cufflinks也是五年前的事情了 Star的比对速度是tophat的50倍,hisa ...

  8. 洛谷1312 Mayan游戏

    原题链接 讨厌这种大搜索题 基本就是模拟搜索,注意细节即可. 以下是我用的两个剪枝: 将块向左移的前提是左边为空,因为该题要求先右后左,所以若左边有块,那么在上一次搜索向右移的时候一定会搜过,且字典序 ...

  9. OpenSSH配置与基本使用

    SSH访问远程 SSH常见分类: telnet-远程登录协议,23/TCP 明文认证.明文传输(不安全) ssh(Secure SHell)-应用层协议,22/TCP 通讯和认证过程加密.主机认证 用 ...

  10. python之初级篇2

    一.数字类型 1)整数 int 类型 - bit_length() # 查询以二进制表示一个数字的值所需的位数 - int.from_bytes(bytes,byteorder) # 返回给定字节数组 ...