利用canvas简单制作一个转动的圆

<!DOCTYPE html>

<html>

<head>

  <title>round.html</title>

  <style type="text/css">

    #canvas {

      background:#dddddd;

    }

  </style>

  <script type="text/javascript">

    var canvas=null;

    var ctx=null;

    //参数

    var r=10;//小圆半径

    var number=6;//圆形层数

    var number2=9;//最里层的小圆的数量

    var direction=0;//旋转方向

    var startAngle=0;

    function init() {

      canvas=document.getElementById("canvas");

      ctx=canvas.getContext("2d");

      //起始角度

      setInterval(function(){

      changeAngle();

      },500);

    }

    function changeAngle(){

      ctx.clearRect(0,0,400,400);

      startAngle==360?startAngle=0:startAngle++;

      draw(startAngle);

    }

    function draw(Angle) {

      for(var i=1;i<=number;i++) {

        var RGB = Math.floor(Math.random()*255);

        //遍历圆个数

        for(var j=1;j<=number2*i;j++) {

          var dx = canvas.width/2;//大圆圆心x坐标

          var dy = canvas.height/2;//大圆圆心y坐标

          //j*dig 所有圆跨的角度

          var dig = (Angle*2*Math.PI/360)+j*2*Math.PI/(number2*i);

          var R=(2*r+1)/2/(Math.sin(2*Math.PI/number2/2/i))

          var x=dx+Math.sin(Angle+dig)*R;

          var y=dy+Math.cos(Angle+dig)*R;

          ctx.beginPath();

          ctx.fillStyle ="rgb("+RGB+","+Math.floor(RGB/2)+","+(255-RGB)+")";

          ctx.arc(x,y,r,0,2*Math.PI,true);

          ctx.closePath();

          ctx.fill();

        }

      } 

    }

  </script>

</head>

<body align="center" onload="init()">

  <canvas id="canvas" width="400" height="400"></canvas>

</body>

</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 曾否,携一人望川水,听晨音,取白露,先湿心。 曾否,带一人入佛院,闻鸡鸣,沿彖壁,次静心。 曾否,旅一人进山林,谈...
    姜靈儿阅读 2,656评论 2 4
  • 从雪峰山刮来的寒风一直延伸着,树叶硕硕地响着。沙雪夹着雨丝漫无目的地飘落,呼出的热气转瞬便蒸腾入云间。顾云村也...
    西米南风阅读 3,233评论 0 2
  • 前面的章节中,我们已经学习过面向对象的基本操作、面向对象的三大特征的详细操作,对于面向对象有了一个初步的了解和认知...
    大牧莫邪阅读 3,733评论 2 5

友情链接更多精彩内容