时钟demo

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8" />
<title></title>
<!--<script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script>-->
<style type="text/css">
* {
padding: 0;
margin: 0;
}

.box {
background: blue;
width: 100px;
height: 100px;
}
</style>

</head>

<body>
<canvas id="myCanvas" width="1000" height="1000"></canvas>

<script type="text/javascript">
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
var hours, minutes, seconds;
ctx.translate(250, 250);

function drawTime() {
ctx.clearRect(-250, -250, 1000, 1000);
var now = new Date();
hours = now.getHours();
minutes = now.getMinutes();
seconds = now.getSeconds();
hours = hours > 12 ? hours - 12 : hours;
hours += minutes / 60;
minutes += seconds / 60;
ctx.strokeStyle = "#0000FF"
ctx.lineWidth = 10;
ctx.beginPath();
ctx.arc(0, 0, 200, 0, 360, false);
ctx.closePath();
ctx.stroke();
for (var i = 0; i < 12; i++) {
ctx.save();
ctx.beginPath();
ctx.rotate(i * 30 * Math.PI / 180);
ctx.lineWidth = 5;
ctx.strokeStyle = "black";
ctx.moveTo(0, -170);
ctx.lineTo(0, -190);
ctx.closePath();
ctx.stroke();
ctx.restore();
}
for (var i = 0; i < 60; i++) {
ctx.save();
ctx.strokeStyle = "black";
ctx.lineWidth = 2;
ctx.beginPath();
ctx.rotate(i * 6 * Math.PI / 180);
ctx.moveTo(0, -180);
ctx.lineTo(0, -190);
ctx.closePath();
ctx.stroke();
ctx.restore();
}
//时针
ctx.save();
ctx.strokeStyle = "black";
ctx.lineWidth = 5;
ctx.beginPath();
ctx.rotate(hours * 30 * Math.PI / 180);
ctx.moveTo(0, 10);
ctx.lineTo(0, -100);
ctx.stroke();
ctx.closePath();
ctx.restore();
//分针
ctx.save();
ctx.strokeStyle = "black";
ctx.lineWidth = 4;
ctx.beginPath();
ctx.rotate(minutes * 6 * Math.PI / 180);
ctx.moveTo(0, 10);
ctx.lineTo(0, -170);
ctx.stroke();
ctx.closePath();
ctx.restore();
//秒针
ctx.save();
ctx.strokeStyle = "red";
ctx.lineWidth = 2;
ctx.beginPath();
ctx.rotate(seconds * 6 * Math.PI / 180);
ctx.moveTo(0, 10);
ctx.lineTo(0, -170);
ctx.closePath();
ctx.stroke();
//秒针前端小圆圈
ctx.beginPath();
ctx.arc(0, -150, 5, 0, 360, false);
ctx.closePath();
ctx.fillStyle = "white";
ctx.fill();
ctx.stroke();
ctx.restore();
//3针交叉点
ctx.beginPath();
ctx.arc(0, 0, 5, 0, 360, false);
ctx.closePath();
ctx.strokeStyle = "red";
ctx.lineWidth = 2;
ctx.fillStyle = "gray";
ctx.fill();
ctx.stroke();
}
drawTime();
setInterval(drawTime, 1000);
</script>
</body>

</html>

时间: 2024-10-10 12:44:10

时钟demo的相关文章

Qt: 时钟Demo

其实是一个很简单的Demo,可以编译了拿NSIS打包.最近在做富文本编辑器和补C++不记得的东西吧,项目遥遥无期. 1 //clock.pro 2 3 #------------------------------------------------- 4 # 5 # Project created by QtCreator 2016-07-26T19:06:54 6 # 7 #------------------------------------------------- 8 9 QT +=

js时钟demo

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"><title>无标题文档</title><style type="text/css"> *{ margin:0; padding:0; font-size:40px; } .container{ position:relative; width:

使用canvas画动态时钟

使用到的知识: 1.     获取系统时间 2.     画图形,空心图形,实心图形,以及其它一些属性 3.     for循环 前期准备: a. HTML中准备一个容器存放画布,并为其设置width,height. <canvas id="myCanvas" width="500" height="400"></canvas> b.在js中获取canvas画布元素,并获得其上下文,对应的方法如下: var c = doc

绘制时钟

  <!doctype html>   <html lang="en">   <head>   <meta charset="UTF-8">   <title>Canvas绘制时钟Demo</title>   <style>   #myCanvas{   border: 1px solid;   }   </style>   </head>   <bod

js绘制时钟

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Canvas绘制时钟Demo</title> <style> #myCanvas{ border: 1px solid; } </style> </head> <body> <canvas id=&quo

iOS开发-CGAffineTransformMakeRotation改变了中心解决办法

坑爹的.  为了这个问题折腾了2个小时. 恼.. 今天在写一个时钟demo的时候, 时针的旋转用到了CGAffineTransformMakeRotation, 按理说. 图像的旋转是以图像本身的中心(center)为锚点的, 也就是在旋转过程中, 它的中心是固定的. 就和我们时针的效果一样. 比如我下面的时针, 分针, 秒针旋转的代码: NSDate *today = [NSDate date]; NSCalendar *calendar = [NSCalendar currentCalend

css变形 transform

transition:过度属性 transition-property 规定设置过度效果的css属性的名称,默认可以写all transition-duration 规定完成过度效果需要多少秒或毫秒 transition-timing-function: 默认easetransition-delay:延时时间 ease:逐渐变慢 linear:匀速 ease-in:加速 ease-out:减速 ease-in-out:先加速在减速 cubic-bezier:贝塞尔曲线 transitionend

[stm32] 一个简单的stm32vet6驱动2.4寸240X320的8位并口tft屏DEMO

书接上文: 最近在研究用低速.低RAM的单片机来驱动小LCD或TFT彩屏实现动画效果 首先我用一个16MHz晶振的m0内核的8位单片机nRF51822尝试驱动一个1.77寸的4线SPI屏(128X160), 发现,刷一屏大约要0.8s左右的时间, 具体收录在<1.一个简单的nRF51822驱动的天马4线SPI-1.77寸LCD彩屏DEMO>中 觉得,如果用72MHz的STM32也许效果会好很多 于是在stm32上做了个类似的版本, 具体收录在<一个简单的stm32vet6驱动的天马4线S

Qt仿Android带特效的数字时钟源码分析(滑动,翻页,旋转效果)

这个数字时钟的源码可以在Qt Demo中找到,风格是仿Android的,不过该Demo中含有三种动画效果(鉴于本人未曾用过Android的系统,因此不知道Android的数字时钟是否也含有这三种效果),其分别为滑动.翻页和旋转. 由于本人的Qt Creator输入中文后显示的都是乱码,因而在此只能使用英文进行注释,后期如果有时间再进行中文的相关整理.可能有些地方理解并不是很正确.希望大家多多指正! 以下为源码: [cpp] view plaincopy #include <QtCore> #i