html5用canvas画小黄人

初学者,用canvas画小黄人

<script>
    window.onload=function(){
        var c=document.getElementById("people");
        var txt=c.getContext("2d");
        //身体
        txt.beginPath();
        txt.strokeStyle="black";
        txt.fillStyle="#F7D845"
        txt.lineWidth=2;
        txt.arc(200,120,80,0,Math.PI*1,true)
        txt.moveTo(280,120)
        txt.lineTo(280,280)
        txt.arc(200,280,80,0,Math.PI*1,false)
        txt.lineTo(120,120)
        txt.fill();
        txt.stroke();
        txt.closePath();

        //头发
        txt.beginPath();
        txt.strokeStyle="black";
        txt.lineWidth=2;
        txt.moveTo(200,40)
        txt.quadraticCurveTo(180,20,160,40)
        txt.stroke();

        txt.beginPath();
        txt.strokeStyle="black";
        txt.lineWidth=2;
        txt.moveTo(200,40)
        txt.quadraticCurveTo(180,20,160,25)
        txt.stroke();

        txt.beginPath();
        txt.strokeStyle="black";
        txt.lineWidth=2;
        txt.moveTo(200,40)
        txt.quadraticCurveTo(180,20,160,10)
        txt.stroke();

        //眼睛带

        txt.beginPath();
        txt.strokeStyle="black";
        txt.lineWidth=5;
        txt.moveTo(120,130)
        txt.lineTo(150,130)
        txt.stroke();
        txt.closePath();

        txt.beginPath();
        txt.strokeStyle="black";
        txt.lineWidth=5;
        txt.moveTo(250,130)
        txt.lineTo(280,130)
        txt.stroke();
        txt.closePath();
        //眼睛

        txt.beginPath();
        txt.fillStyle="black"
        txt.lineWidth=2;
        txt.arc(175,130,25,0,Math.PI*2,true)
        txt.fill();
        txt.stroke();
        txt.closePath();

        txt.beginPath();
        txt.fillStyle="white"
        txt.lineWidth=2;
        txt.arc(175,130,24,0,Math.PI*2,true)
        txt.fill();
        txt.stroke();
        txt.closePath();

        txt.beginPath();
        txt.fillStyle="black"
        txt.lineWidth=2;
        txt.arc(175,130,12,0,Math.PI*2,true)
        txt.fill();
        txt.stroke();
        txt.closePath();

        txt.beginPath();
        txt.fillStyle="white"
        txt.lineWidth=2;
        txt.arc(179,126,6,0,Math.PI*2,true)
        txt.fill();
        txt.stroke();
        txt.closePath();

        txt.beginPath();
        txt.fillStyle="black"
        txt.lineWidth=2;
        txt.arc(225,130,25,0,Math.PI*2,true)
        txt.fill();
        txt.stroke();
        txt.closePath();

        txt.beginPath();
        txt.fillStyle="white"
        txt.lineWidth=2;
        txt.arc(225,130,24,0,Math.PI*2,true)
        txt.fill();
        txt.stroke();
        txt.closePath();

        txt.beginPath();
        txt.fillStyle="black"
        txt.lineWidth=2;
        txt.arc(225,130,12,0,Math.PI*2,true)
        txt.fill();
        txt.stroke();
        txt.closePath();

        txt.beginPath();
        txt.fillStyle="white"
        txt.lineWidth=2;
        txt.arc(229,126,6,0,Math.PI*2,true)
        txt.fill();
        txt.stroke();
        txt.closePath();

        //嘴
        txt.beginPath();
        txt.fillStyle="white"
        txt.arc(200,183,20,2.9,Math.PI*1.85,true)
        txt.fill();
        txt.closePath();

        //蓝色衣服
        txt.beginPath();
        txt.strokeStyle="black";
        txt.fillStyle="blue"
        txt.lineWidth=2;
        txt.arc(200,280,80,0,Math.PI*1,false)
        txt.fill();
        txt.stroke();
        txt.closePath();

        //两个手
        txt.beginPath();
        txt.strokeStyle="black";
        txt.fillStyle="#F7D845"
        txt.lineWidth=2;
        txt.moveTo(280,220)
        txt.quadraticCurveTo(320,250,260,260)
        txt.stroke();


        txt.beginPath();
        txt.moveTo(120,220)
        txt.quadraticCurveTo(80,250,140,260)
        txt.stroke();
        txt.closePath();
        txt.closePath();
        //裤带
        txt.beginPath();
        txt.strokeStyle="blue";
        txt.lineWidth=8;
        txt.moveTo(120,200)
        txt.quadraticCurveTo(200,280,280,200)
        txt.stroke();
        txt.closePath();


        txt.beginPath();
        txt.strokeStyle="black";
        txt.lineWidth=2;
        txt.fillStyle="blue"
        txt.fillRect(160,226,80,54)
        txt.fill();
        txt.stroke();
        txt.closePath();


        //小黑扣
        txt.beginPath();
        txt.fillStyle="black"
        txt.arc(162,229,5,0,Math.PI*2,false)
        txt.fill();
        txt.stroke();

        txt.beginPath();
        txt.fillStyle="black"
        txt.arc(237,229,5,0,Math.PI*2,false)
        txt.fill();
        txt.stroke();

        txt.beginPath();
        txt.strokeStyle="black";
        txt.lineWidth=2;
        txt.arc(200,255,10,0,Math.PI*2,false)
        txt.stroke();
        txt.closePath();

        //腿
        txt.beginPath();
        txt.strokeStyle="blue";
        txt.lineWidth=20;
        txt.moveTo(178,350)
        txt.lineTo(178,390)
        txt.stroke();

        txt.beginPath();
        txt.strokeStyle="blue";
        txt.lineWidth=20;
        txt.moveTo(216,350)
        txt.lineTo(216,390)
        txt.stroke();
        txt.closePath();

        //鞋子
        txt.beginPath();
        txt.strokeStyle="blue";
        txt.lineWidth=10;
        txt.fillStyle="black"
        txt.arc(178,390,10,0,Math.PI*2,false)
        txt.fill();
        txt.stroke();

        txt.beginPath();
        txt.fillStyle="black"
        txt.arc(216,390,10,0,Math.PI*2,false)
        txt.fill();
        txt.stroke();
        txt.closePath();

    }
</script>

效果图
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTML5canvas元素可以用来制作图形和动。下面是一个使用canvas制作小黄人的示例代码: ```html <!DOCTYPE html> <html> <head> <title>小黄人制作</title> <style type="text/css"> canvas { border: 1px solid black; } </style> </head> <body> <canvas id="canvas" width="200" height="200"></canvas> <script type="text/javascript"> var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); // 绘制黄色身体 ctx.beginPath(); ctx.fillStyle = "yellow"; ctx.arc(100, 100, 80, 0, Math.PI * 2, true); ctx.fill(); // 绘制眼睛 ctx.beginPath(); ctx.fillStyle = "white"; ctx.arc(70, 70, 20, 0, Math.PI * 2, true); ctx.arc(130, 70, 20, 0, Math.PI * 2, true); ctx.fill(); ctx.beginPath(); ctx.fillStyle = "black"; ctx.arc(70, 70, 10, 0, Math.PI * 2, true); ctx.arc(130, 70, 10, 0, Math.PI * 2, true); ctx.fill(); // 绘制嘴巴 ctx.beginPath(); ctx.fillStyle = "black"; ctx.arc(100, 130, 40, Math.PI * 0.2, Math.PI * 0.8, false); ctx.fill(); // 绘制胳膊 ctx.beginPath(); ctx.fillStyle = "yellow"; ctx.rotate(-45 * Math.PI / 180); ctx.translate(-100, 60); ctx.fillRect(0, 0, 80, 20); ctx.translate(80, 0); ctx.fillRect(0, 0, 80, 20); </script> </body> </html> ``` 代码中使用了canvas元素和JavaScript的Canvas API来绘制小黄人。首先获取canvas元素和它的2d上下文对象ctx,然后使用ctx的方法来绘制黄色身体、眼睛、嘴巴和胳膊。其中,使用了arc()方法来绘制圆形,fill()方法来填充颜色,rotate()和translate()方法来控制绘制位置和旋转角度。最后,使用CSS样式来添加一个边框,使布更加美观。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值