用Canvas绘制一个钟表

效果图:

<html>
<head></head><body>
<canvas id="canvas1"height="500px"width="500px">您的浏览器不支持canvas标签。</canvas>
<script>
var c=document.getElementById("canvas1");
var clock=c.getContext("2d");
function drawclock(){
    //清除画布,每画一次就要清除上一次的
    clock.clearRect(0,0,500,500);
    var now=new Date();
    var sec=now.getSeconds();
    var min=now.getMinutes();
    var hour=now.getHours();

    //小时必须获取浮点类型(小时+分钟转换成的小时)
    hour=hour+min/60;
    //获取的时间为24小时的(),需要转换为12小时的(小时)
    hour=hour>12?hour-12:hour;//hour是否大于12,如果大于则hour=hour-12否则hour=hour。

    //表盘
    clock.lineWidth=10;
    clock.strokeStyle="#41216e";
    clock.beginPath();
    clock.arc(250,250,100,0,360,false);
    clock.closePath();
    clock.stroke();
    //时刻度,12个,所以用for循环来画
    for(var i=0;i<12;i++){
        clock.save();
        clock.lineWidth=6;
        clock.strokeStyle="#6f3a81";
        //先设置(0,0)点
        clock.translate(250,250);
        //再设置旋转角度
        clock.rotate(i*30*Math.PI/180);
        clock.beginPath();
        clock.moveTo(0,-93);
        clock.lineTo(0,-80);
        clock.stroke();
        clock.closePath();
        clock.restore();
    }

    //分刻度
    for(var j=0;j<60;j++){
        clock.save();
        clock.lineWidth=4;
        clock.strokeStyle="#6f3a81";
        clock.translate(250,250);
        clock.rotate(j*6*Math.PI/180);
        clock.beginPath();
        clock.moveTo(0,-93);
        clock.lineTo(0,-85);
        clock.stroke();
        clock.closePath();
        clock.restore();
    }

    //时针
    clock.save();
    clock.lineWidth=6;
    clock.strokeStyle="#170523";
    clock.translate(250,250);
    clock.rotate(hour*30*Math.PI/180);
    clock.beginPath();
    clock.moveTo(0,-40);
    clock.lineTo(0,10);
    clock.lineCap="round";
    clock.closePath();
    clock.stroke();
    clock.restore();

    //分针
    clock.save();
    clock.lineWidth=4;
    clock.strokeStyle="#170523";
    clock.translate(250,250);
    clock.rotate(min*6*Math.PI/180);
    clock.beginPath();
    clock.moveTo(0,-58);
    clock.lineTo(0,15);
    clock.closePath();
    clock.stroke();
    clock.restore();
    //秒针
    clock.save();
    clock.lineWidth=2;
    clock.strokeStyle="#c582ba";
    clock.translate(250,250);
    clock.rotate(sec*6*Math.PI/180);
    clock.beginPath();
    clock.moveTo(-70,0);
    clock.lineTo(16,0);
    clock.stroke();
    clock.closePath();
    //画出时针,分针,秒针的交叉点
    clock.beginPath();
    clock.fillStyle="black";
    clock.arc(0,0,5,0,360);
    clock.arc(-60,0,2.5,0,360);
    clock.fill();
    clock.closePath();
    clock.stroke();
    clock.restore();
}
    //使用setInterval一秒钟调用一次
    setInterval(drawclock,1000);
</body>
</script>

</html>
时间: 2024-08-28 16:45:35

用Canvas绘制一个钟表的相关文章

通过HTML5标签canvas绘制一个八卦图案

只需要用到casvas标签和fillStyle.arc.beginPath.closePath.fill方法 代码如下: <canvas id="rect" width="310" height="310" style="border:1px yellow solid;"> </canvas> <script> var id=document.getElementById("rec

HTML5 在canvas绘制一个矩形

笔者:本笃庆军 原文地址:http://blog.csdn.net/qingdujun/article/details/32930501 一.绘制矩形 canvas使用原点(0,0)在左上角的坐标系统,x坐标向右递增.y坐标向下递增. 使用画图环境的矩形绘制函数来绘制矩形. fillRect(x,y,width,height) : 绘制一个实心的矩形. strokeRect(x,y,width,height) : 绘制一个空心的矩形. clearRect(x,y,width,height) :

用canvas绘制一个简易时钟

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

canvas 画一个钟表

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

用canvas绘制一个时钟

实现一个时钟的绘制和时间的显示 一,首先是页面的搭建html部分以及一点点的css代码,因为css这块用的比较少,所以就没有单独出来: <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>时钟</title>    <style type="text/css">    

用canvas 做一个钟表

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> *{ margin: 0; padding: 0; list-style: none; } #box{ width: 420px; margin: 50px auto 0; } #cav{ backg

用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】绘制一个数字时钟

使用canvas绘制一个数字时钟 基础内容 下面是此案例中会使用到的一些绘图API //获取绘图上下文 var ctx = canvas.getContext('2d'); //绘制直线 ctx.moveTo(100, 100); ctx.lineTo(700, 700); //绘制曲线 ctx.arc( centerx, centery, radius, //圆心的坐标以及半径的值 startingAngle,endingAngle, //从哪个弧度制开始到那个弧度值结束 anticlockw

canvas绘制国旗样式

今天绘制的是国旗: 代码如下: <html><head> <script> var col=new Array("red","brown"); var ticker=0; var step=0; function drawBackground(){ var g=document.getElementById("background").getContext("2d"); var grd=g.