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

本文介绍如何利用HTML Canvas元素,结合JavaScript来绘制哆啦A梦的全身图像,重点在于画圆方法的运用和角度控制,以实现头部、口袋及脚部的精确描绘。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

教你如何用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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值