canvas案例——画时钟

基本思路,先画一个200半径的圆

ctx.arc(250,250,200,0,2*Math.PI);

然后再画时分刻度,可以先利用translate变化坐标到圆的中心点,然后再通过rotate旋转

 1             //画12个时刻度线
 2             for(var i=0;i<12;i++){
 3                 ctx.save();
 4                 ctx.translate(250,250);
 5                 ctx.rotate(i*Math.PI/6);
 6                 ctx.moveTo(0,-180);
 7                 ctx.lineTo(0,-195);
 8                 ctx.stroke();
 9                 ctx.restore();
10             }
11             //画60个分刻度线
12              for(var i=0;i<60;i++){
13                  //经过时刻度跳过
14                  if(i%5!=0){
15                     ctx.save();
16                     ctx.translate(250,250);
17                     ctx.rotate(i*Math.PI/30);
18                     ctx.beginPath();
19                     ctx.strokeStyle="#555";
20                     ctx.moveTo(0,-190);
21                     ctx.lineTo(0,-195);
22                     ctx.closePath();
23                     ctx.stroke();
24                     ctx.restore();
25                  }
26             }

需要注意,在画刻度线时要用到save()和restore()

save()是保存原始的坐标,经过变换坐标后画刻度线,再restore()回到原始坐标。不然的话,每一次坐标变化都是基于前一次的坐标。

时间: 2024-10-11 14:09:59

canvas案例——画时钟的相关文章

原生JS的&lt;canvas&gt;标签画时钟

首先要申明本人对于美除了美女真没什么要求. 其次讲讲次学习碰到重要知识点: 1.画圆(弧): context.arc(x, y, radius, Math.PI / 180 * startAngle, Math.PI / 180 * endAngle, anticlockwise); x:横坐标: y:纵坐标: radius:半径: startAngle:Math.PI / 180 这个在数学上表示1度,这边需要用圆弧表示,所以需要多少就写多少.表示弧线开始的角度. endAngle:同理,表示

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

利用空余时间学习一下html5. 1 <!doctype html> 2 <html> 3 <head></head> 4 <body> 5 <canvas id="clock" width="500" height="500"></canvas> 6 <script> 7 var clock=document.getElementById('cloc

通过H5的新标签canvas做出一个时钟的全过程,希望对初学者有帮助

最近学习了H5中的一个新标签canvas并且用它做出了一个时钟,最下面是成品图像,还不错吧,这只是我学习中的一个小demo,做得有点粗糙,但终究是做出来了,以后再写自己的网页主页再做一个好看点放上去.接下来我将和你们分享如何制作这个时钟. 在body中添加canvas标签: <canvas id="myCanvas" width="600px" height="600px" style="border:1px solid #c3c

canvas做的时钟,学习下

canvas标签只是图形容器,您必须使用脚本来绘制图形. getContext() 方法可返回一个对象,该对象提供了用于在画布上绘图的方法和属性.——获取上下文对象. getContext("2d") 对象属性和方法,可用于在画布上绘制文本.线条.矩形.圆形等等. fillRect(l,t,w,h):默认颜色是黑色 strokeRect(l,t,w,h):带边框的方块.默认一像素黑色边框 setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. beginP

H5 canvas圆形的时钟

今天用H5中的canvas标签做一个时钟,H5中有很多好用的新增标签,真的很不错. 1.canvas标签介绍 <canvas> 标签定义图形,比如图表和其他图像,你必须使用脚本来绘制图形.在画布上(Canvas)画一个红色矩形,渐变矩形,彩色矩形,和一些彩色的文字. HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.不过不是所有的浏览器都支持这个标签的,支持的有谷歌4.0,ie9.0,火狐2.0等. 2.时钟的绘制第一步 在html中

利用canvas制作一个时钟

先上张效果图. 利用canvas来画出一个时钟,想想都是一件神奇又美妙的事情.话不多说,先上代码吧. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-sca

canvas实现的时钟效果

最近在网上看到了一个css3实现的可爱时钟,觉得很nice,然后就想着用canvas试试实现这个时钟效果. 首先,要实现时钟需要先计算时钟上的数字应该占整个圆的大小. 因为一个圆是360度,所以数字之间就是360/12=30度,所以我在圆上画出数字的代码是这样的: drawNumber:function(){ this.context.save(); for(var i = 0;i < 12; i++){ var angle = i*30; angle = angle*Math.PI/180;

h5+canvas绘制动画时钟

h5+canvas绘制动画时钟 效果图,这个是截图,可以动的, 代码如下: <!DOCTYPE html><html><head><title>动画效果</title></head> <body> <canvas id="anm" width="600" height="600" style="border:1px solid gray"

Android UI编程进阶——使用SurfaceViewt和Canvas实现动态时钟

概述: 很多时候我们想要自己写一些类似时钟.罗盘的控件,却又找不到合适的Demo.我想这时你可能索性就直接上图片了.在Android有Canvas和Paint这么好的画师的情况下,还是选择使用图片,的确是有一些尴尬了.下面我就利用一步一步实现自定义时钟来对这个问题做一个讲解.(注明:本人不太会制作GIF图片,以下图片均不能动态展示,想要查看动态效果,请转到博客末尾处下载源码进行查看) 错误示例: 这里我有一个"错误"的示例.这里的错误其实应该是要打上双引号的,因为它不是真的错误,只是在