canvas画时钟
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>canvas画时钟</title>
<script>
window.onload = function() {
var canvas = document.getElementById("canvas");
canvas.width = canvas.height = 400;
canvas.style.background = "white";
if (canvas.getContext) {
var ext = canvas.getContext("2d");
drawClock()
setInterval(drawClock, 1000);
}
function drawClock() {
var x = 200;
var y = 200;
var r = 150;
ext.clearRect(0, 0, canvas.width, canvas.height)
var oData = new Date();
var hours = oData.getHours();
var minutes = oData.getMinutes();
var seconds = oData.getSeconds();
var hoursValue = (-90 + hours * 30 + minutes / 2) * Math.PI / 180; //分针过了30,时针不应该正好在整点上,2分钟一度;
var minutesValue = (-90 + minutes * 6) * Math.PI / 180;
var secondsValue = (-90 + seconds * 6) * Math.PI / 180;
ext.lineWidth = 2
ext.arc(x, y, r, 0, Math.PI * 2, false);
ext.stroke();
//画小刻度
for (var i = 0; i < 60; i++) {
ext.strokeStyle = "black"
ext.lineWidth = 1;
ext.beginPath();
ext.moveTo(x, y);
ext.arc(x, y, r, 6 * i * Math.PI / 180, 6 * (i + 1) * Math.PI / 180, false)
ext.closePath();
ext.stroke();
}
drawBlankCircle(10)
//画大刻度
for (var i = 0; i < 12; i++) {
ext.lineWidth = 3;
ext.strokeStyle = "green"
ext.beginPath();
ext.moveTo(x, y);
ext.arc(x, y, r, 30 * i * Math.PI / 180, 30 * (i + 1) * Math.PI / 180, false)
ext.closePath();
ext.stroke();
}
drawBlankCircle(15)
//画空白覆盖圆;
function drawBlankCircle(d) {
ext.fillStyle = "white"
ext.beginPath();
ext.arc(x, y, r - d, 0, Math.PI * 2, false);
ext.closePath();
ext.fill();
}
//画时针;
ext.lineWidth = 5;
ext.strokeStyle = "#f90"
ext.beginPath();
ext.moveTo(x, y);
ext.arc(x, y, r - 60, hoursValue, hoursValue, false);
ext.closePath();
ext.stroke();
//画分针;
ext.lineWidth = 3;
ext.strokeStyle = "red"
ext.beginPath();
ext.moveTo(x, y);
ext.arc(x, y, r - 40, minutesValue, minutesValue, false);
ext.closePath();
ext.stroke();
//画秒针;
ext.lineWidth = 1;
ext.strokeStyle = "black"
ext.beginPath();
ext.moveTo(x, y);
ext.arc(x, y, r - 25, secondsValue, secondsValue, false);
ext.closePath();
ext.stroke();
//画表盘中心小圆;
ext.fillStyle = "black";
ext.beginPath();
ext.arc(x, y, 6, 0, Math.PI * 2, false);
ext.closePath();
ext.fill();
}
}
</script>
</head>
<body >
<canvas id="canvas">
</canvas>
</body>
</html>
canvas画时钟的更多相关文章
- canvas画时钟,重拾乐趣!
canvas时钟--效果图 一.先来简单介绍画时钟需要的canvas知识 1.在HTML页面中添加canvas元素,必须定义canvas元素的id属性值以便接下来的调用. HTML代码: <ca ...
- canvas 画时钟 会动呦
//半径 var r = 130; //重置原点 ctx.save(); ctx.translate(400, 500); //使用translate重置原点 function drawClock() ...
- html5学习(一)--canvas画时钟
利用空余时间学习一下html5. <!doctype html> <html> <head></head> <body> <canva ...
- 用canvas画时钟
效果图在博客首页上. html: <canvas id="canvas" >Your browser does not support canvas</canva ...
- 深夜,用canvas画一个时钟
深夜,用canvas画一个时钟 查看demo 这几天准备阿里巴巴的笔试,可以说已经是心力交瘁,自从阿里和蘑菇街的内推被刷掉之后,开始越来越怀疑起自己的能力来,虽然这点打击应该是微不足道的.毕竟校招在刚 ...
- [JS,Canvas]日历时钟
[JS,Canvas]日历时钟 Html: <!doctype html> <html> <head> <meta charset="UTF-8&q ...
- 使用canvas绘制时钟
使用canvas绘制时钟 什么使canvas呢?HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.<canvas> 标签只是图 ...
- HTML5 之Canvas 绘制时钟 Demo
<!DOCTYPE html> <html> <head> <title>Canvas 之 时钟 Demo</title> <!--简 ...
- 简单酷炫的Canvas数字时钟
声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 我记得很早之前就看过这个DEMO,是岑安大大博客里看到的: 就是这个数字时钟,当时觉得这个创意不错,但是也没去折腾.直到昨天同事又在网上看 ...
随机推荐
- CuteFTP 9.0 上传文件时,中文文件名乱码
解决办法如图: 1.右键--->属性 2.选项---->档案名称编 选择ascⅡ
- javaSE第二十四天
第二十四天 363 1:多线程(理解) 363 (1)JDK5以后的Lock锁 363 A:定义 363 B:方法: 364 C:具体应用(以售票程序为例) 364 ...
- 怎样在Android中ListView与ArrayAdapter配合使用
[代码]main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xml ...
- C++ streambuf用法
class LogStreamBuf : public std::streambuf { public: // REQUIREMENTS: "len" must be >= ...
- CentOS学习笔记--系统服务 (daemons)
系统服务 (daemons) 系统为了某些功能必须要提供一些服务 (不论是系统本身还是网络方面),这个服务就称为 service . 但是 service 的提供总是需要程序的运行吧!否则如何运行呢? ...
- HTML5学习笔记简明版(1):HTML5介绍与语法
HTML5介绍 HTML5是继HTML4以后的下一代HTML标准规范,它提供了一些新的元素和属性(例如<nav>网站导航块和<footer>).新型的标签有利于搜索引擎和语义分 ...
- C#中判断字符串中包含某个字符
C#判断字符串是否存在某个字符,如果存在进行替换. //定义一个字符串 string str=".net/Java/asp.net"; //检验“/” if(str.Cont ...
- 关于SQL表联接
以SQL2008为例,Microsoft SQL Server 2008支持四种表运算符-JOIN,APPLY,PIVOT,UNPIVOT.JOIN表运算符是ANSI标准,而其他三种是T-SQL对标准 ...
- JSON (仅限本地)
<script type="text/javascript"> setInterval(function() { $("#content").loa ...
- OC学习-1
编译和编写代码. 1. 创建代码文件夹 mkdir lession2 2. 新建类文件 touch lession2.m 3. 打开编写代码,(会用xcode打开) open lession2.m 4 ...