p5.js自画像

在这里插入图片描述

上面为效果图,下面为源代码

源代码

function setup()
{ 
createCanvas(640, 480);
    angleMode(DEGREES);
}

function draw()
{
background(200);
    strokeWeight(0);
    //头发
    fill(150, 10, 100);
    arc(300,150,110,110,180,0);
    fill(255, 245, 238);
    ellipse(300, 150, 80, 85);

   fill(150, 10, 100);
    beginShape();
    vertex(270, 110);
    vertex(290, 140);
    vertex(315, 135);
    vertex(310, 100);
    endShape(CLOSE);

     beginShape();
    vertex(300, 120);
    vertex(340, 140);
    vertex(330, 110);
    vertex(300, 100);
    endShape(CLOSE);

    beginShape();
    vertex(280, 110);
    vertex(280, 140);
    vertex(260, 120);
    endShape(CLOSE);

     beginShape();
    vertex(260, 115);
    vertex(240, 190);
    vertex(260, 210);
    vertex(270, 120);
    endShape(CLOSE);


     beginShape();
    vertex(246, 140);
    vertex(235, 190);
    vertex(260, 160);
    endShape(CLOSE);

    beginShape();
    vertex(354, 140);
    vertex(360, 190);
    vertex(350, 175);
    vertex(348, 185);
    vertex(330, 160);
    endShape(CLOSE);


 //挑染
    fill(250, 110, 100);
    beginShape();
    vertex(265, 140);
    vertex(255, 200);
    vertex(260, 210);
    vertex(270, 120);
    endShape(CLOSE);

    fill(150, 10, 100);
    beginShape();
    vertex(335, 130);
    vertex(330, 210);
    vertex(355, 190);
    vertex(350, 150);
    endShape(CLOSE);


   fill(250, 110, 100);
    beginShape();
    ellipse(300,235,60,100);
    endShape(CLOSE);


    //裙子
    fill(250,150,180);
    beginShape();
    quad(272,250,328,250,360,285,245,285);
    endShape(CLOSE);


    fill(200,100,100);
    beginShape();
    ellipse(270,225,40,40);
    ellipse(330,225,40,40);
    endShape(CLOSE);
    fill(255, 245, 238);
    beginShape();
    ellipse(280,225,28,23);
    ellipse(320,225,28,23);
    endShape(CLOSE);

    fill(255, 245, 238);
    beginShape();
    rect(283, 184, 35, 11); 
    triangle(283,195,318,195,300,215);
    endShape(CLOSE);
   //挑染
    fill(250, 110, 100);
    beginShape();
    vertex(335, 140);
    vertex(330, 210);
    vertex(335, 210);
    vertex(335, 190);
    endShape(CLOSE);
    beginShape();
    vertex(280, 125);
    vertex(290, 140);
    vertex(295, 139);
    endShape(CLOSE);
   //眼睛
    fill(150, 110, 80);
    beginShape();
    ellipse(317, 150, 15, 15);
    ellipse(285, 150, 15, 15);
    endShape(CLOSE);
    fill(0);
    beginShape();
    ellipse(317,152,9,8);
    ellipse(285,152,9,8);
    endShape(CLOSE);

    //红晕
    fill(255, 195, 103);
    beginShape();
    ellipse(275,168,8,5);
    ellipse(325,168,8,5);
    endShape(CLOSE);
    //嘴巴
    fill("pink");
    beginShape();
    arc(300,175, 25,20,0,180);
    endShape(CLOSE);





}



以上为全部代码,没什么技巧,主要就是点的位置和arc(),ellipse(),vertex()等函数的应用。arc()函数为圆弧函数,图像的嘴巴和脑袋都用到了此函数,ellipse()函数主要用于脸和身体;
除此之外,还有fill()函数填充颜色,对于适当的区域填充适当的颜色,注意,此函数不可以放入beginShape()和endShape()中,这样会造成颜色被覆盖,p5.js里面前面的颜色会被后面的颜色覆盖,因此代码段的位置也不可改变。
beginShape()和endShape()用于区分函数段,绘制图形的时候不至于上一个函数覆盖下一个。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值