canvas做钟表
来源:互联网 发布:网络赌托该不该举报 编辑:程序博客网 时间:2024/05/17 02:38
<!DOCTYPE html>
<html><head>
<meta charset="utf-8">
<title>canvas做时钟</title>
<style type="text/css">
div{
text-align: center;
margin-top: 250px;
}
#clock{
border:1px solid #ccc;
}
</style>
</head>
<body >
<div>
<canvas id="clock" width="200px" height="200px"></canvas>
</div>
</body>
<script type="text/javascript">
var dom=document.getElementById("clock");
var context=dom.getContext("2d");
var width=context.canvas.width;
var height=context.canvas.height;
var r=width/2;
var rem=width/200;
function drawbackgroud(){
context.save();
context.translate(r,r);
context.beginPath();
context.lineWidth = rem * 4;
context.arc(0,0,r - context.lineWidth / 2,0,2 * Math.PI,false);
context.stroke();
var hour = [3,4,5,6,7,8,9,10,11,12,1,2];
context.font = 18*rem + 'px Aprial';
context.textAlign = 'center';
context.textBaseline = 'middle';
hour.forEach(function(number,i){
var rad = 2 * Math.PI / 12 * i;
var x = Math.cos(rad) * (r - 30 * rem);
var y = Math.sin(rad) * (r - 30 * rem);
context.fillText(number,x,y);
});
for(var i = 0;i < 60;i++) {
var rad = 2 * Math.PI / 60 * i;
var x = Math.cos(rad) * (r - 18 * rem);
var y = Math.sin(rad) * (r - 18 * rem);
context.beginPath();
if(i%5===0) {
context.fillStyle="#000";
context.arc(x,y,2*rem,0,2*Math.PI,false);
} else {
context.fillStyle="#ccc";
context.arc(x,y,2*rem,0,2*Math.PI,false);
}
context.fill();
}
}
function drawHour(hour,minute){
context.save();
context.beginPath();
context.lineWidth=6*rem;
context.lineCap="round";
var rad = 2 * Math.PI/12*hour;
var mrad = 2 * Math.PI/12/60*minute;
context.rotate(rad + mrad );
context.moveTo(0,10 * rem);
context.lineTo(0,- r/2);
context.stroke();
context.restore();
}
function drawMinute(Minute){
context.save();
context.beginPath();
context.lineWidth=4*rem;
var rad = 2 * Math.PI / 60 * Minute;
context.rotate(rad);
context.lineCap="round";
context.moveTo(0,10 * rem);
context.lineTo(0,- r+ 30 *rem );
context.stroke();
context.restore();
}
function drawSecond(second){
context.save();
context.beginPath();
context.fillStyle= '#c14543'
var rad = 2 * Math.PI/60*second;
context.rotate(rad);
context.moveTo(-2,20);
context.lineTo(2,20);
context.lineTo(1,-r+18);
context.lineTo(-1,-r+18)
context.fill();
context.restore();
}
function drawDot(){
context.beginPath();
context.fillStyle="#fff";
context.arc(0,0,3,0,2*Math.PI,false);
context.fill();
}
function draw(){
context.clearRect(0,0,width,height);
var now = new Date();
var hour = now.getHours();
var Minute = now.getMinutes();
var second = now.getSeconds();
drawbackgroud();
drawHour(hour,Minute);
drawMinute(Minute);
drawSecond(second);
drawDot();
context.restore();
}
draw();
setInterval(draw,1000);
</script>
</html>
1 0
- canvas做钟表
- canvas--钟表
- html5 canvas 绘制钟表
- canvas模拟简易钟表
- canvas制作钟表
- canvas画钟表demo
- 【HTML5】canvas钟表
- HTML5 canvas时钟钟表!
- 利用canvas绘制钟表
- Canvas---Canvas绘制钟表,仪表盘
- 第一个Canvas实例-钟表
- 自制钟表(用canvas)
- 用canvas画一个钟表
- 用canvas实现钟表功能
- js做的钟表
- 用Unity做一个钟表
- Html5学习--------canvas编写简单钟表
- HTML5元素Canvas实例之钟表
- 创新丨想创新?看看谷歌怎么做
- Java十进制数与其余进制数转换问题!!!!!!!
- Facebook与高通合作优化深度学习框架Caffe2
- php面试题汇总三(基础篇附答案)
- 内核页表和进程页表
- canvas做钟表
- shell变量测试
- poj3276_翻转问题
- Qt: qobject_cast<QPushButton*>(sender()) 简化信号与槽的编写
- Java迭代 : Iterator和Iterable接口
- android基础学习2————Activity入门
- 机器学习——深度学习(Deep Learning)
- 初识FreeMarker
- hdu 2098 分拆素数和