教你如何用Canvas绘制整身的哆啦A梦

教你如何用Canvas绘制整身的哆啦A梦

上牌你文章我们说到了如何使用canvas绘制哆啦A梦,但当时只是绘制了哆啦A梦的头部,之后有学员留言说可不可以教大家绘制整身的哆啦A梦,想了想,决定安排一下。如图:

在这里插入图片描述

HTML代码:

    <canvas id="my_canvas"></canvas>
    <canvas id="my_canvas2"></canvas>

CSS代码:

        * {
   
            margin: 0;
        }

        #my_canvas {
   
            /* display: block;
            margin: 0 auto; */
            background: pink;
        }

        #my_canvas2 {
   
            background: skyblue;
        }

JS代码:

    var oCanvas = document.getElementById("my_canvas");
    oCanvas.width = 680;
    oCanvas.height = 840;
    var context = oCanvas.getContext("2d");
    // 1.大脑袋
    context.beginPath();
    context.arc(340, 260, 230, Math.PI / 3, Math.PI / 3 * 2, true);
    context.lineWidth = "8";
    context.closePath();
    context.stroke();

    context.fillStyle = "rgb(34,118,207)";
    context.fill();

    // 2.大脸蛋子

    // context.ellipse(x,y,r1,r2,旋转的角度,起始角度,结束角度)
    context.beginPath();
    context.lineWidth = "8";
    context.ellipse(340, 310, 200, 180, 0, Math.PI / 4, Math.PI / 4 * 3, true);
    context.stroke();
    context.fillStyle = "white";
    context.fill();

    // 3.大嘴巴子
    context.beginPath();
    context.lineWidth = "5";
    context.moveTo(340, 245);
    context.lineTo(340, 405);
    context.stroke();
    context.fillStyle = "black";
    context.fill();
    context.beginPath();
    context.ellipse(340, 215, 200, 190, 0, Math.PI / 4, Math.PI / 4 * 3, );
    context.stroke();


    // 4.大眼珠子
    // 左眼
    context.beginPath();
    context.lineWidth = "8";
    context.ellipse(288, 160, 50, 60, 0, 0, Math.PI * 2);
    context.stroke();
    context.fillStyle = "white";
    context.fill();
    context.beginPath();
    context.arc(295, 190, 20, 0, -Math.PI, true);
    context.stroke();


    // 右眼
    context.beginPath();
    context.ellipse(392, 160, 50, 60, 0, 0, Math.PI * 2);
    context.stroke();
    context.fillStyle = "white";
    context.fill();
    context.beginPath();
    context.arc(385, 190, 20, 0, -Math.PI, true);
    context.stroke();

    // 5.大鼻子
    context.beginPath();
    context.lineWidth = "8";
    context.arc(340, 235, 30, 0, 2 * Math.PI);
    context.stroke();
    context.fillStyle = "red";
    context.fill();

    // 6.画胡子
    context.lineWidth = "5";
    huzi(165, 224, 270, 265);
    huzi(153, 280, 262, 280);
    huzi(165, 320, 262, 300);
    huzi(416, 265, 515, 224);
    huzi(425, 280, 530, 280);
    huzi(425, 300
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用以下步骤来一个简单的哆啦A梦: 1. 创建一个canvas元素 2. 获取canvas上下文 3. 哆啦A梦的身体和头部 4. 用填充颜色绘制哆啦A梦的身体和头部 5. 绘制哆啦A梦的眼睛、嘴巴和鼻子 6. 绘制哆啦A梦的背包和手臂 7. 最后,你可以添加一些细节和阴影来使哆啦A梦更加逼真。 下面是一个简单的示例代码,可以帮助你开始绘制哆啦A梦: ```html <!DOCTYPE html> <html> <head> <title>绘制哆啦A梦</title> </head> <body> <canvas id="myCanvas" width="400" height="400"></canvas> <script> var canvas = document.getElementById('myCanvas'); var context = canvas.getContext('2d'); // 绘制哆啦A梦的身体和头部 context.beginPath(); context.moveTo(150, 200); context.bezierCurveTo(150, 150, 250, 150, 250, 200); context.lineTo(250, 250); context.lineTo(150, 250); context.closePath(); context.fillStyle = '#00aaff'; context.fill(); // 绘制哆啦A梦的眼睛、嘴巴和鼻子 context.beginPath(); context.arc(180, 220, 10, 0, 2*Math.PI); context.arc(220, 220, 10, 0, 2*Math.PI); context.fillStyle = '#fff'; context.fill(); context.beginPath(); context.moveTo(190, 240); context.quadraticCurveTo(200, 250, 210, 240); context.strokeStyle = '#000'; context.lineWidth = 2; context.stroke(); context.beginPath(); context.arc(200, 230, 3, 0, 2*Math.PI); context.fillStyle = '#000'; context.fill(); // 绘制哆啦A梦的背包和手臂 context.beginPath(); context.moveTo(150, 200); context.lineTo(120, 180); context.lineTo(120, 150); context.lineTo(150, 170); context.closePath(); context.fillStyle = '#ff0000'; context.fill(); context.beginPath(); context.moveTo(250, 200); context.lineTo(280, 180); context.lineTo(280, 150); context.lineTo(250, 170); context.closePath(); context.fillStyle = '#ff0000'; context.fill(); </script> </body> </html> ``` 你可以根据需要进行调整和修改,以获得想要的效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值