zoukankan      html  css  js  c++  java
  • Canvas rotate() 旋转【每日一段代码27】

    <!DOCTYPE HTML>
    <html>
    <head>
    <title>rotate</title>
    <script type="text/javascript">
    function draw(){
    var cxt = document.getElementById("myCanvas").getContext("2d");
    cxt.translate(75,75);
    for (i=1; i<6; i++)
    {
    cxt.save();
    cxt.fillStyle = 'rgb('+(51*i)+','+(255-51*i)+',255)';
    for (j=0; j<i*6; j++)
    {
    cxt.rotate(Math.PI*2/(i*6));
    cxt.beginPath();
    cxt.arc(0,i*12.5,5,0,Math.PI*2,true);
    cxt.fill();
    }
    cxt.restore();
    }
    }
    </script>
    </head>
    <body onLoad="draw()">
    <canvas id="myCanvas" height="150" width="150" style="border:2px solid #06f;">
    </canvas>
    </body>
    </html>

    图片显示如下:

    rotate 方法,它用于以原点为中心旋转 canvas。该方法只接受一个参数:旋转的角度(angle),它是顺时针方向的,以弧度为单位的值。旋转的中心点始终是 canvas 的原点,如果要改变它,我们需要用到 translate 方法。上面的例子用到了两层循环。第一层循环决定环的数量,第二层循环决定每环有多少个点。每环开始之前,都保存一下 canvas 的状态,这样恢复起来方便。每次画圆点,以一定夹角来旋转 canvas,而这个夹角则是由环上的圆点数目的决定的。最里层的环有 6 个圆点,这样,每次旋转的夹角就是 360/6 = 60 度。往外每一环的圆点数目是里面一环的 2 倍,那么每次旋转的夹角随之减半。】

  • 相关阅读:
    论语学习系列(一)
    如何编译生成 dll
    Lua学习系列(二)
    Lua学习系列(一)
    Promise对象
    ... 扩展运算符
    class类
    proxy [ˈprɒksi] 代理
    HBuilder 打包流程
    Generator [ˈdʒenəreɪtə(r)] 函数结构
  • 原文地址:https://www.cnblogs.com/naokr/p/2367226.html
Copyright © 2011-2022 走看看