canvas 太极

3 篇文章 0 订阅
2 篇文章 0 订阅

闲着无事,想起来使用canvas画个太极玩玩,具体思想
先画两个半圆用黑白区分组合在一起成为圆
再画两个圆定位在具体位置构成太极图案中的曲线 视觉差
最后再画那两个小圆


var c=document.getElementById("myCanvas");
    var cxt=c.getContext("2d");
    //绘制左侧的白色半圆直径都是150
    cxt.fillStyle="#FFFFFF";
    cxt.beginPath();
    cxt.arc(300,200,150,1.5*Math.PI,Math.PI/2,false);
    cxt.closePath();
    cxt.fill();
    //绘制右侧的黑色半圆
    cxt.fillStyle="#000000";
    cxt.beginPath();
    cxt.arc(300,200,150,Math.PI/2,1.5*Math.PI,false);
    cxt.closePath();
    cxt.fill();
     //绘制下面的黑色圆
     cxt.fillStyle="#000000";
     cxt.beginPath();
     cxt.arc(300,275,75,0,2*Math.PI,false);
     cxt.closePath();
     cxt.fill();
     //绘制上面的白色圆
     cxt.fillStyle="#FFFFFF";
     cxt.beginPath();
     cxt.arc(300,125,75,0,2*Math.PI,false);
     cxt.closePath();
     cxt.fill();
      //绘制两个小圆
      cxt.fillStyle="FFFFFF";
      cxt.beginPath();
      cxt.arc(300,275,10,0,2*Math.PI,false);
      cxt.closePath();
      cxt.fill();
      //绘制黑色小圆
      cxt.fillStyle="#000";
      cxt.beginPath();
      cxt.arc(300,125,10,0,2*Math.PI,false);
      cxt.closePath();
      cxt.fill();

这样实现起来还算可以,本着不写重复代码的原则就将这些步骤做了封装。

    var black = "black",white = "white"
    var canvas = document.getElementById("canvas");
    var ctx = canvas.getContext("2d");
    //左侧黑色半圆
    drawCic(300,200,150,1.5*Math.PI,Math.PI/2,black,true);
    //右侧白色半圆
    drawCic(300,200,150,Math.PI/2,1.5*Math.PI,white,true);
    //大黑圆
    drawCic(300,275,75,0,2*Math.PI,black,true);
    //大白圆
    drawCic(300,125,75,0,2*Math.PI,white,true);
    //小白圆
    drawCic(300,275,10,0,2*Math.PI,white,true);
    //小黑圆
    drawCic(300,125,10,0,2*Math.PI,black,true);
    /*注
    * drawCic 各参数
    * x ---圆心x
    * y ---圆心y
    * r---半径
    * begin--起始角度
    * point--目标角度
    * color--颜色
    * boolean--选画方向
    * */
    function drawCic(x,y,r,begin,point,color,boolean){
        ctx.fillStyle =color;
        ctx.beginPath();
        ctx.arc(x,y,r,begin,point,color,boolean);
        ctx.closePath();
        ctx.fill();
    }

“`


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值