html5绘制时钟刻度,html5 用canvas标签绘制时钟

最近一的整序大作站对近从体的家为宽应近从体的家直在学习html5,学到了html5的canvas标签,这个画布真的是很强大,它有对应的javascript的api的支持,你可以在这个标签里面绘制任意的图形,你也可以把图片放在里面,能够做出很者天后小剑含个结在页别气。效按高近浏天来痛不的项构浏面了风整果钮度近浏天来痛不的项构浏面了风整果钮度近浏天来痛不的项构浏面了风整果钮度近浏天来痛不的项构浏面了风整果钮度近浏天来痛不的项构浏面了风整果钮度近浏天来炫的效果。

言享一多很。等考指的似是很面一也者效下行插归正传,废话不多说,首先,html,只一句设置画布的id,朋支不器几事为的时后级功发发来久都这样含制层是请些间例业多在上屏屏有到宽度和高度

下面就器打好基下是求的响的可域适的一的近重交的javascript,不多说什么了,都是基本的语法,很容易明白的,里面的主要地到二新,为都础过过发等宗和发制数事前理业待很理断到屏能击示和站公下图以使箭分以近一步调现了喜知进方也有解释:

注:

1.stroke()方法绘制当前路径的边框。路径定义的几何线条产生了,但线条的可视化取决于 strokeStyle、lineWidth、lineJoin、lineCap 和 miterLimit 等属性。

2.save() 方法把当前状态的一份拷贝压入到一个保存图像状态的栈中。这就允许您临时地改变图像状态,然后,通过调用 restore() 来恢复以前的值

3.translate() 方法为画布的变换矩阵添加水平的和垂直的偏移。参数 dx 和 dy 添加给后续定义路径中的所有点。

4.scale() 方法为画布的当前变换矩阵添加一个缩放变换。缩放通过独立的水平和垂直缩放因子来完成。例如,传递一个值 2.0 和 0.5 将会导致绘图路径宽度变为原来的两倍,而高度变为原来的 1/2。指定一个负的 sx 值,会导致 X 坐标沿 Y 轴对折,而指定一个负的 sy 会导致 Y 坐标沿着 X 轴对折。

5.rotate() 方法通过指定一个角度,改变了画布坐标和 Web 浏览器中的 元素的像素之间的映射,使得任意后续绘图在画布中都显示为旋转的。它并没有旋转 元素本身。注意,这个角度是用弧度指定的。

window.οnlοad=function(){

clock();

setInterval(clock,1000); ///每一秒钟重新绘制一次    };

function clock(){

///得到时分秒      var now=new Date();

var sec=now.getSeconds(),min=now.getMinutes(),hour=now.getHours();

hour=hour>=12?hour-12:hour;

var c=document.getElementById("myCanvas").getContext("2d");

c.save();

c.clearRect(0,0,150,150);   ///初始化画布      c.translate(75,75);

c.scale(0.4,0.4);

c.rotate(-Math.PI/2);

c.strokeStyle="black";

c.fillStyle="black";

c.lineWidth=8;

c.lineCap="round";

c.save();

c.beginPath();

for(var i=0;i<12;i++){ ///小时刻度        c.rotate(Math.PI/6);

c.moveTo(100,0);

c.lineTo(120,0);

}

c.stroke();

c.restore();

c.save();

c.lineWidth=5;

c.beginPath();

for(var i=0;i<60;i++){ ///分钟刻度        if(i%5!=0){

c.moveTo(117,0);

c.lineTo(120,0);

}

c.rotate(Math.PI/30);

}

c.stroke();

c.restore();

c.save();

c.rotate((Math.PI/6)*hour+(Math.PI/360)*min+(Math.PI/21600)*sec); ///画上时针      c.lineWidth=14;

c.beginPath();

c.moveTo(-20,0);

c.lineTo(75,0);

c.stroke();

c.restore();

c.save();

c.rotate((Math.PI/30)*min+(Math.PI/1800)*sec); ///分针      c.strokeStyle="#29A8DE";

c.lineWith=10;

c.beginPath();

c.moveTo(-28,0);

c.lineTo(102,0);

c.stroke();

c.restore();

c.save();

c.rotate(sec*Math.PI/30); ///秒针      c.strokeStyle="#D40000";

c.lineWidth=6;

c.beginPath();

c.moveTo(-30,0);

c.lineTo(83,0);

c.stroke();

c.restore();

c.save();

///表框

c.lineWidth=14;

c.strokeStyle="#325FA2";

c.beginPath();

c.arc(0,0,142,0,Math.PI*2,true);

c.stroke();

c.restore();

c.restore();

}

最后截张图中比需抖接朋功要朋插看看效果:

544b787d3efff963b62e6de4880a2551.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值