• H5 canvas圆形的时钟


       今天用H5中的canvas标签做一个时钟,H5中有很多好用的新增标签,真的很不错。

       1.canvas标签介绍

               <canvas> 标签定义图形,比如图表和其他图像,你必须使用脚本来绘制图形。在画布上(Canvas)画一个红色矩形,渐变矩形,彩色矩形,和一些彩色的文字。

                    

              HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.不过不是所有的浏览器都支持这个标签的,支持的有谷歌4.0,ie9.0,火狐2.0等


     

       2.时钟的绘制第一步

            在html中添加以下代码,一个宽高都是100的画布。

    <canvas id="myCanvas" width="100" height="100"></canvas>

     3.用js开始绘制钟表

    <script type="text/javascript">
         var myCanvas = document.getElementById('myCanvas');
         var c = myCanvas.getContext('2d');
         function clock(){
             c.clearRect(0,0,100,100);
             var data = new Date();
             var sec =data.getSeconds();
             var min =data.getMinutes();
             var hour=data.getHours();
    
             c.save();
             c.translate(50,50);
             c.rotate(-Math.PI/2);
             //分钟刻度线
             for(var i=0;i<60;i++){    //画12个刻度线
                 c.beginPath();
                 c.strokeStyle = "#f00";
                 c.lineWidth = 1 ;
                 c.moveTo(45,0);
                 c.lineTo(40,0);
                 c.stroke();
                 c.rotate(Math.PI/30); //每个6deg画一个时钟刻度线
                 c.closePath();
             }
             //时钟刻度线
             for(var i=0;i<12;i++){    //画12个刻度线
                 c.beginPath();
                 c.strokeStyle = "#000";
                 c.lineWidth = 2 ;
                 c.moveTo(45,0);
                 c.lineTo(40,0);
                 c.stroke();
                 c.rotate(Math.PI/6); //每个30deg画一个时钟刻度线
                 c.closePath();
             }
             //外表盘
             c.beginPath();
             c.strokeStyle = "pink";
             c.arc(0,0,55,0,Math.PI*2);
             c.lineWidth = 16 ;
             c.stroke();
             c.closePath();
    
             //画时针
             hour = hour>12?hour-12:hour;
    //                console.log(hour);
             c.beginPath();
             c.save();
             c.rotate(Math.PI/6*hour+Math.PI/6*min/60+Math.PI/6*sec/3600);
             c.strokeStyle = "yellowgreen";
             c.lineWidth = 4 ;
             c.moveTo(-25,0);
             c.lineTo(40,0);
             c.stroke();
             c.restore();
             c.closePath();
    
    
             //画分针
    //                console.log(min);
             c.beginPath();
             c.save();
             c.rotate(Math.PI/30*min+Math.PI/30*sec/60);
             c.strokeStyle = "springgreen";
             c.lineWidth = 3 ;
             c.moveTo(-15,0);
             c.lineTo(40,0);
             c.stroke();
             c.restore();
             c.closePath();
    
    
             //画秒针
             c.beginPath();
             c.save();
             c.rotate(Math.PI/30*sec);
             c.strokeStyle = "red";
             c.lineWidth = 2 ;
             c.moveTo(-20,0);
             c.lineTo(40,0);
             c.stroke();
             c.restore();
             c.closePath();
    
             c.restore();
         }
         clock();
         setInterval(clock,100);
     </script>

       


       4.得到下图的效果

             

             时钟已经画完了,关于形状和颜色可以自己再修改的。这个标签的很多使用方法我就不一一的说了,下面这个地址,大家可以查看的                     http://www.runoob.com/html/html5-canvas.html

           

  • 相关阅读:
    深入理解 Embedding层的本质
    tf.nn.embedding_lookup()的用法
    深度学习原理与框架-CNN在文本分类的应用 1.tf.nn.embedding_lookup(根据索引数据从数据中取出数据) 2.saver.restore(加载sess参数)
    通俗理解tf.name_scope()、tf.variable_scope()
    TENSORFLOW变量作用域(VARIABLE SCOPE)
    Tensorflow函数——tf.variable_scope()
    tf.variable_scope 参数
    何查看Tomcat版本信息
    XCode4中的文本查找和文本替换功能
    引入第三方库错误Undefined symbols for architecture i386: _OBJC_CLASS_$的解决方案
  • 原文地址:https://www.cnblogs.com/xiaonannan/p/6815916.html
Copyright © 2020-2023  润新知