• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    html5之Canvas路径绘图、坐标变换应用实例
    在上一篇中我们了解html5的Canvas ,在这一篇中不用多说,写一个html5的时钟应用程序试手。在这里主要设置了坐标变换的平移(translate)和旋转变换(ratate),以及html5 Canvas的路径绘图,beginPath,closePath,rect,arc等,还有就是html5 Canvas路径绘图重要的绘图状态的保存和恢复机制,save,restore。
    多的也不说了,直接上代码,有不解的欢迎提问,以及对我的建议指教都可以。
    ff下效果图
     
    代码

    复制代码
    代码如下:

    <html>
    <head>
    </head>
    <body>
    <canvas id="myCanvas" width="600" height="300">你的浏览器还不支持哦</canvas>
    <script type="text/javascript">
    var c = document.getElementById("myCanvas");
    var cxt = c.getContext("2d");
    var slen = 60;
    var mlen = 50;
    var hlen = 40;
    cxt.strokeRect(0, 0, c.width, c.height);
    cxt.beginPath();
    cxt.strokeStyle = "#00f";
    cxt.fillStyle = "#00f";
    cxt.arc(200, 150, 5, 0, 2 * Math.PI, true);
    cxt.fill();
    cxt.closePath();
    cxt.beginPath();
    cxt.strokeStyle = "#00f";
    cxt.arc(200, 150, 100, 0, 2 * Math.PI, true);
    cxt.stroke();
    cxt.closePath();
    cxt.beginPath();
    cxt.translate(200, 150); //平移原点;
    cxt.rotate(-Math.PI / 2);
    cxt.save();
    for (var i = 0; i < 60; i++) {
    if (i % 5 == 0) {
    // cxt.fillStyle = "#ff0000";
    cxt.fillRect(80, 0, 20, 5);
    cxt.fillText("" + (i / 5 == 0 ? 12 : i / 5), 70, 0);
    } else {
    // cxt.strokeStyle = "#00f";
    cxt.fillRect(90, 0, 10, 2);
    }
    //document.getElementById("div1").innerText += " " + i;
    cxt.rotate(Math.PI / 30);
    }
    cxt.closePath();
    var ls = 0, lm = 0, lh = 0;
    function Refresh() {
    cxt.restore();
    cxt.save();
    cxt.rotate(ls * Math.PI / 30);
    cxt.clearRect(5, -1, slen+1, 2+2);
    cxt.restore(); cxt.save();
    cxt.rotate(lm * Math.PI / 30);
    cxt.clearRect(5, -1, mlen+1, 3+2);
    cxt.restore(); cxt.save();
    cxt.rotate(lh * Math.PI / 6);
    cxt.clearRect(5, -3, hlen+1, 4+2);
    var time = new Date();
    var s = ls=time.getSeconds();
    var m = lm=time.getMinutes();
    var h = lh=time.getHours();
    cxt.restore();
    cxt.save();
    cxt.rotate(s * Math.PI / 30);
    cxt.fillRect(5, 0, slen, 2);
    cxt.restore(); cxt.save();
    cxt.rotate(m * Math.PI / 30);
    cxt.fillRect(5, 0, mlen, 3);
    cxt.restore(); cxt.save();
    cxt.rotate(h * Math.PI / 6);
    cxt.fillRect(5, -2, hlen, 4);
    }
    var MyInterval = setInterval("Refresh();", 1000);
    </script>
    <div id="div1" style=" background:#00f;"></div>
    </body>
    </html>
    上一篇:html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
    下一篇:html5 web本地存储将取代我们的cookie
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    html5之Canvas路径绘图、坐标变换应用实例 html5,之,Canvas,路径,绘图,