canvas画笑脸

173 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情

今天用canvas的画圆属性来画一个笑脸

我们利用stroke()来画一个简单的笑脸。

    <canvas id="canvas" width="500" height="500"></canvas>
    let c1=document.getElementById('canvas');
    let ctx=c1.getContext('2d');
    //我们开始画笑脸
    //先画最外面圆脸
     ctx.arc(200,200,50,0,Math.PI*2)
     ctx.stroke();
     
    //左眼睛
    ctx.arc(160,150,15,0,Math.PI*2);
    ctx.stroke();
    
    //右眼睛
    ctx.arc(240,150,15,0,Math.PI*2)
    ctx.stroke();
    
    //嘴我们是向上微笑,我们圆弧只要Math.PI就可以
    ctx.arc(200,230,40,0,Math.PI);
    ctx.stroke();
     

我们看一下效果

image.png

圆和圆结束点会和下一个圆连接。这是因为我们绘制的时候,我们的画笔没有把笔抬起来,所以,我们要在绘制下一个圆或者是图形的时候,我们把笔抬起来,然后在新的点绘制图形。

这里我们可以用beginPath和closePath来做,就是下面这样

    let c1=document.getElementById('canvas');
    let ctx=c1.getContext('2d');
    // 整个的大圆
    ctx.beginPath();
    ctx.arc(200,200,100,0,Math.PI*2)
    ctx.stroke()
    ctx.closePath();
// 左眼睛的圆
    ctx.beginPath();
    ctx.arc(160,160,15,0,Math.PI*2)
    ctx.stroke();
    ctx.closePath();
// 右眼睛的圆
    ctx.beginPath();
    ctx.arc(240,160,15,0,Math.PI*2)
    ctx.stroke();
    ctx.closePath();

// 下面的圆弧嘴巴
ctx.beginPath();
ctx.arc(200,230,40,0,Math.PI)
ctx.stroke();
ctx.closePath();

//下面我们用moveTo()来把画笔移动到另外一个点也可以做出同样的效果

      ctx.arc(200,200,100,0,Math.PI*2);
      ctx.moveTo(175,160);

      ctx.arc(160,160,15,0,Math.PI*2);
      ctx.moveTo(255,160);

      ctx.arc(240,160,15,0,Math.PI*2);
      ctx.moveTo(240,230);

      ctx.arc(200,230,40,0,Math.PI);

      ctx.stroke();
      
      这个移动的点是圆开始绘制的那个点,我们这里是顺时针画圆,所以在下一个圆圆心的基础上,我们要加上圆的半径,这样才是我们moveTo移动到的那个点。

以上就是canvas学习的进度二。希望和大家一起进步。