canvas 画一个小时钟

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head><body>    <canvas id="mycanvas" height="1000" width="1000"></canvas></body><script>    //save和restore方法    //restore只能回复到save之后,如果在save前已经调用过其他操作画布的方法,是不能通过restore还原的    //调用了restore方法将画布恢复,但是刚才时针已经被绘制在屏幕上,此时不会再受到画布的影响     //要对restore和save相当的了解    var c = document.getElementById("mycanvas");    //console.log(c);    var ctx = c.getContext("2d");    //console.log(ctx);    c.width = window.innerWidth;    c.height = window.innerHeight;    var width=ctx.canvas.width;  //获取当前canvas的宽高    var height=ctx.canvas.height;    console.log(width, height);    function rads(x) {        return Math.PI*x/180;    }    //console.log(rads(360));    /*先画一个圆圈圈*/    function arcPlot(c,x,y,r) {          c.save();          c.translate(x,y);          c.beginPath();          c.arc(0,0,r,0,rads(360));          c.lineWidth = ‘5px‘;          c.strokeStyle = ‘red‘;          c.stroke();    }    /*画时钟*///因为有旋转的操作,为了不影响后面的分钟秒钟画法,必须回复到最初始的状态,所以用save和restore.    function hour(h,m) {        ctx.save();        ctx.beginPath();        ctx.moveTo(0,0);        ctx.rotate(2*Math.PI/12*(h-3)+2*Math.PI/12/60*m);        ctx.lineTo(40,0);        ctx.strokeStyle = "blue";        ctx.stroke();        ctx.restore();    }    /*画分钟*/    function minute(m) {        ctx.save();        ctx.beginPath();        ctx.moveTo(0,0);        ctx.rotate(2*Math.PI/60*(m-15));        ctx.lineTo(60,0);        ctx.strokeStyle = "green";        ctx.stroke();        ctx.restore();    }    /*画秒钟*/    function second(s) {        ctx.save();        ctx.beginPath();        ctx.moveTo(0,0);        ctx.rotate(2*Math.PI/60*(s-15));        //console.log(2*Math.PI/60*(s-15));        ctx.lineTo(80,0);        ctx.strokeStyle = "orange";        ctx.stroke();        ctx.restore();

//console.log(seconds);    }    /*开始画刻度*/     function plotLine() {         for (var i = 0; i < 60; i++) {             ctx.beginPath();             if (i % 5 == 0) {                 ctx.moveTo(80, 0);                 ctx.lineTo(100, 0);                 ctx.lineWidth = "4px";             }else{                 ctx.moveTo(90, 0);                 ctx.lineTo(100, 0);                 ctx.lineWidth = "3px";             }             ctx.rotate(rads(6));             ctx.strokeStyle = "black";             ctx.stroke();         }     }   /*如何使时钟动起来*/   function draw() {       //debugger;       ctx.clearRect(-500,-500,2000,2000); //每秒清除一次矩形       ctx.save();    //这个save的位置很重要,放错了,就得不到我们想要的结果       //console.log(window.innerWidth, window.innerHeight);       var date=new Date();       var h=date.getHours();       var m=date.getMinutes();       var s=date.getSeconds();       arcPlot(ctx,500,500,100);       plotLine();       hour(h,m);       minute(m);       second(s);       ctx.restore();   }    //定时器    setInterval(draw, 1000);    draw(); //先执行一次,不然页面会卡一下。</script></html>
时间: 2024-11-13 05:11:17

canvas 画一个小时钟的相关文章

10分钟,利用canvas画一个小的loading界面(顺便讨论下绘制效率问题)

首先利用定义下canvas得样式 <canvas width="1024" height="720" id="canvas" style="border: 1px solid #808080;display: block;margin: 100px auto;>你的游览器不支持canvas</canvas> 这里主要要说的就是宽高,不要在style里面定义,不然会被拉伸.(对于这点,建议大家看下W3c文档,不是很

10分钟,利用canvas画一个小的loading界面

首先利用定义下canvas得样式 <canvas width="1024" height="720" id="canvas" style="border: 1px solid #808080;display: block;margin: 100px auto;>你的游览器不支持canvas</canvas> 这里主要要说的就是宽高,不要在style里面定义,不然会被拉伸.(对于这点,建议大家看下W3c文档,不是很

利用canvas画一个动态时钟

目标:利用canvas画布画一个动态时钟,根据目前的时间可以实时更新的,可以在过程中添加一些效果,比如让时钟外围的一圈颜色渐变,时钟上的数字颜色改变,时钟的指针颜色改变... 设置一个定时器 先放上一张效果图,参考一下 先建一个画布,写好样式 <style type="text/css"> *{ margin: 0; padding: 0; } div{ //设置div的text-align为center,margin-top text-align: center; mar

玩转html5(四)----使用canvas画一个时钟(可以动的哦!)

先给个效果图,我画的比较丑,大家可以自己美化一下, 直接上代码: <!DOCTYPE html> <meta charset="utf-8"> <html> <body> <canvas width="500" height="500" id="clock" > 您的浏览器不支持canvas </canvas> <script> //获取画布

用canvas绘制一个简易时钟

在见识了html5中canvas的强大,笔者准备制作一个简易时钟. 下面就是成果啦,制作之前我们先分析一下,绘制一个时钟需要做哪些准备. 一 . 1.首先这个时钟分为表盘,指针(时针,分针,秒针)和数字三部分. 2.表盘是个圆,这个简单. 3.绘制指针时,需要先获取到系统时间,然后找到时间和角度的关系. 4.然后利用画圆函数,把起始和终点设为同一角度,即可画出射线(指针).  二. 接下来,我们再分析一下,绘制时钟需要用到的函数. 1.arc(x, y, r, start, stop) x, y

手对手的教你用canvas画一个简单的海报

啦啦啦,首先说下需求,产品想让用户在我们app内,分享一张图片到微信.qq等平台.图片中包含用户的姓名.头像.和带着自己信息的二维码.然后,如何生成这张海报呢~~~首先我们老大告诉我有一个插件叫html2canvas.其作用就是可以将dom节点转化成图片,是个不错的东西.我试验了下.确实可以,但~这个插件有点大啊,为了满足海报的这个需求引入这么大的东西感觉很亏!!!所以,还是自己画一个~首先先上效果图 当当当当~~~最后生成的海报中包括头像和姓名与二维码,当然图上的二维码是百度的二维码~最后生成

canvas 画一个钟表

只是作为练习,没怎么抽象,都放在函数里面,只是简单的实现. 首先说下思路,将一个圆分成12份做表盘,然后用lineTo等方法话指针,最后用一个setInterval刷新画布,让指针每隔一秒动一下. js代码如下: window.onload = function () { var canvas = document.getElementById('myCanvas'), context = canvas.getContext('2d'), centerX = canvas.height / 2,

用canvas画一个钟表

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> body{background:#000;} #c1{background-color: #fff;} </style> <script> window.onload=function()

用canvas写一个h5小游戏

这篇文章我们来讲一讲用canvas画一个躲水果的小游戏.就是通过手指控制一个人物移动来躲避水果,若发生碰撞,则游戏结束. 我们定义一个game_control对象来处理初始化,事件绑定,游戏开始,游戏结果判定,游戏结束等判定. 在游戏中,我们需要一个人物以及三种水果的图片,我们做成了雪碧图. 接下来直接上代码吧~ 首先我们定义一个ship对象,3个水果.一个人物都是基于这个对象的. function ship(options){ if (options) { var width=options.