Originality Self-portrait 创意自画像——p5.js

Originality Self-portrait 创意自画像——p5.js

1.对自己的理解——以便自画。

个人性格比较像熊,平时吃饱喝足还是比较温顺的,但是烦心事比较暴躁,看什么东西都会不爽,所以我觉得我就像头熊,所以我就像画一只熊当自画像。

2.啥也不说了开始动手画熊。

熊确实比较难画,所以我找一个比较好画的卡通熊熊如下图所示。
在这里插入图片描述

3.话不多说先画再说。

效果图:
在这里插入图片描述
代码:

 noStroke();
  fill(200);
  push();
  translate(300,300);
  rotate(frameCount / -70.0);
  Node(100,100,150,150,8,100,20,200);
  pop();
  push();
  translate(380,380);
  Node(100,100,150,150,7,100,20,200);
  pop();
  push();
  translate(380,20);
  Node(50,50,-10,-10,7,100,20,200);
  pop();
  push();
  translate(40,520);
  Node(50,50,-10,-10,7,100,20,200);
  pop();
  translate(mouseX-280,mouseY-350);
  noStroke();
    //小熊上色下巴
  fill(60);
  ellipse(230,430,100,30);
  ellipse(290,430,100,30);
  ellipse(326,410,20,20);
  ellipse(328,415,20,20);
  ellipse(330,420,20,20);
  ellipse(328,435,20,20);
  ellipse(335,435,20,20);
  ellipse(330,435,20,20);
  ellipse(325,435,20,20);
  //line(360,430,350,435);
  //小熊上色头部
  fill(255);
  //stroke(100,100,100,128);
  //noStroke();
  //strokeWeight(4);
  ellipse(230,370,100,100);
  ellipse(190,400,42,42);
  ellipse(210,320,45,45);
  ellipse(220,310,45,45);
  ellipse(250,330,45,45);
  ellipse(280,350,45,45);
  ellipse(300,360,45,45);
  ellipse(290,390,80,77);
  ellipse(256,415,20,20);
  ellipse(250,415,20,20);
  ellipse(247,415,20,20);
  ellipse(243,415,20,20);
  ellipse(238,415,20,20);
  //黑眼圈

  //小熊
  push();
  fill(255);
  translate(-100,-100);
  //374,511,347,493,356,489

  bezier(414,454,432,434,460,488,416,524);
  bezier(314,388,424,359,426,467,414,458);
  bezier(314,388,292,396,257,437,268,515);
  bezier(420,521,383,538,282,521,266,512);
  bezier(307,532,308,636,212,549,268,515);
  bezier(448,544,398,546,351,542,309,544);

  bezier(448,544,448,544,433,500,433,500);
        strokeWeight(5);
  stroke(60);
  line(310,543,448,543);
  noStroke();
  bezier(354,533,312,597,418,611,393,538);
  bezier(292,402,308,433,324,402,319,384);
  //耳朵左上
  bezier(292,402,276,382,294,376,319,384);
  //
  bezier(366,385,367,372,405,374,388,395);
  //左眼
  bezier(334,438,323,536,431,399,334,438);
  //右眼
  bezier(419,439,384,471,378,418,410,416);
  //嘴巴
  fill(0);
   bezier(385,505,374,511,347,493,356,489);
  //eye
  //左眼珠
  fill(60);
  //push();
  //rotate(0.05);
  ellipse(355,450,35,30);
  //pop();
  fill(0);
  ellipse(355,450, 5, 5);
  //右眼珠
  fill(60);
   ellipse(400,435,30,25);
  fill(0);
  ellipse(400,435,5,5);
  //鼻子
  ellipse(400,470,20,10);
  strokeWeight(5);
  stroke(60);
  line(448,542,433,505);
  pop();  
4.画好主要画像后要添加特效。原本想添加流星特效,结果编着编着编成了蝴蝶结特效。

在这里插入图片描述
大约就是这样,蝴蝶结两边的宽可以缩小。代码如下:

function Node(positionx1,positiony1,positionx2,positiony2,weight,R,G,B) {
  var t=millis()/800;
   //ellipse(positionx1,positionx1, t, 72);
var k=(positiony2-positiony1)/(positionx2-positionx1);
var k2=(-1)/k;
var b1=-positionx1*k2+positiony1;
  var x11,x12;
x11=positionx1+weight*sqrt(sin(t)*sin(t))+3;
var y11=k2*x11+b1;
x12=positionx1-weight*sqrt(sin(t)*sin(t))-3;
var y12=k2*x12+b1;
///
  var x21,x22;
  var b2=-positionx2*k2+positiony2;
x21=positionx2+weight*sqrt(sin(t)*sin(t))+3;
var y21=k2*x21+b2;
x22=positionx2-weight*sqrt(sin(t)*sin(t))-3;
var y22=k2*x22+b2;
fill(R,G,B);
   strokeWeight(2);
  fill(200,200,100);
  fill(200,100,100);
   beginShape();
  vertex(x11,y11);
  vertex(x12,y12);
  vertex(x21,y21);
  vertex(x22,y22);
  vertex(x11,y11);
  endShape(CLOSE);
}
5.画完这些还缺个好看的背景。

自己画始终感觉比不上其他的感觉
网上找的背景:
在这里插入图片描述
感觉就上了一个档次,少女心爆棚。
加载代码方法:
参考:https://www.jb51.net/article/136713.htm
上述方法是在p5.js的网站将图片传到P5.js的官网,但是我没有账号好像不允许我用这个功能,然而我也不能注册一个账户,所以我一气之下,换了个编译器processing,加载图片与上述类似,只不过生成独立文件里面将图片放在一起,就能实现加载图片。

6.交互功能实现。

我发现交互,大家都做的眼睛跟着动,嘴巴变一变啥的,没什么创意,我也没有啥比较好的交互创意就让熊跟着鼠标动算了。
成品图:
在这里插入图片描述
动图不好看,看截图:
在这里插入图片描述
结束!欢迎提问!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值