本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
p5.js画一幅自画像
追忆似水年华 · 846浏览 · 发布于2019-11-05 +关注

用p5.js画一幅自画像

如何画基础图形

扇形:arc(200, 130, 112, 80, PI, 0);//绘制弧(x,y,宽,高,起始角度,终止角度)

圆形:ellipse(175,150,30,30);//绘制椭圆(x,y,宽,高)

四边形:quad(100,0,200,0,0,200,0,100); //绘制四边形(x1,y1,x2,y2,x3,y3,x4,y4)

矩形:rect(190, 195, 20, 20);//绘制矩形(x,y,宽,高)

三角形: triangle(190,235,210,235,200,250);//绘制三角形(x1,y1,x2,y2,x3,y3)


线条和图形的属性

填充:fill(); 或者noFill();

边框:stroke();或者noStroke();


鼠标交互

mouseX;

mouseY;


背景定时换颜色

使用了frameRate(120);和count++;来实现,count奇偶数时背景颜色不同。


效果

20191103202427142.jpg


完整代码

let clr1="#f7abb3";
let clr2="#c9404e";
let count=0;
function setup() {
  createCanvas(400, 400);
  frameRate(120);
}
function draw() {
  background(255);
  
  //条纹背景
  /*
  noStroke();
  fill("#f7abb3");
  //fill(clr1);
  triangle(0,0,100,0,0,100);//绘制三角形(x1,y1,x2,y2,x3,y3)    
  quad(200,0,300,0,0,300,0,200);
  quad(400,0,400,100,100,400,0,400);
  quad(400,200,400,300,300,400,200,400);
   
  fill("#c9404e");
  //fill(clr2);
  quad(100,0,200,0,0,200,0,100); 
  quad(300,0,400,0,0,400,0,300);
  quad(400,100,400,200,200,400,100,400);
  triangle(400,300,400,400,300,400);//绘制三角形(x1,y1,x2,y2,x3,y3)
 */
  
  count++;
  if(count%2==0)
  {
    
    noStroke();
    //fill("#f7abb3");
    fill(clr1);
    triangle(0,0,100,0,0,100);//绘制三角形(x1,y1,x2,y2,x3,y3)
    quad(200,0,300,0,0,300,0,200);
    quad(400,0,400,100,100,400,0,400);
    quad(400,200,400,300,300,400,200,400);
    
    //fill("#c9404e");
    fill(clr2);
    quad(100,0,200,0,0,200,0,100); 
    quad(300,0,400,0,0,400,0,300);
    quad(400,100,400,200,200,400,100,400);
    triangle(400,300,400,400,300,400);//绘制三角形(x1,y1,x2,y2,x3,y3)
    fr = 3;
    frameRate(fr);
  }
  else
  {
      noStroke();
      //fill("#f7abb3");
      fill(clr2);
      triangle(0,0,100,0,0,100);//绘制三角形(x1,y1,x2,y2,x3,y3)
      quad(200,0,300,0,0,300,0,200);
      quad(400,0,400,100,100,400,0,400);
      quad(400,200,400,300,300,400,200,400);
      //fill("#c9404e");
      fill(clr1);
      quad(100,0,200,0,0,200,0,100); 
      quad(300,0,400,0,0,400,0,300);
      quad(400,100,400,200,200,400,100,400);
      triangle(400,300,400,400,300,400);//绘制三角形(x1,y1,x2,y2,x3,y3)
      fr = 2;
      frameRate(fr);
  }
  
  //脖子
  fill("#fbeadf");
  rect(190, 195, 20, 20);//绘制矩形(x,y,宽,高)
   
  //衣服
  fill("#929af6");
  quad(190,215,210,215,240,260,160,260); 
  
  //衣服上的星星
  noStroke();
  fill("#891020");
  triangle(190,235,210,235,200,250);//绘制三角形(x1,y1,x2,y2,x3,y3)
  triangle(190,245,210,245,200,230);//绘制三角形(x1,y1,x2,y2,x3,y3)
  
  //头发
  noStroke();
  fill("#6b4c4f");
  rect(140, 142, 40, 130);//绘制矩形(x,y,宽,高) 
  rect(220, 142, 40, 130);//绘制矩形(x,y,宽,高) 
  
  //耳朵
  stroke(0);
  fill("#fceade");
  ellipse(260,150,20,20);//绘制椭圆(x,y,宽,高) 
  ellipse(140,150,20,20);//绘制椭圆(x,y,宽,高)
  
  //脸
  fill("#fef3ec");
  ellipse(200,150,120,120);//绘制椭圆(x,y,宽,高) 
   
  //刘海
  noStroke();
  fill("#6b4c4f");
  arc(200, 130, 112, 80, PI, 0);//绘制弧(x,y,宽,高,起始角度,终止角度)
  
  //眼眶和嘴
  stroke(0);
  fill(255);
  ellipse(175,150,30,30);//绘制椭圆(x,y,宽,高) 
  ellipse(225,150,30,30);//绘制椭圆(x,y,宽,高)
  triangle(200,180,190,185,210,185);//绘制三角形(x1,y1,x2,y2,x3,y3) 
  
  //眼球
  fill(0);
  var x1=2*mouseX/40+165;
  var y1=2*mouseY/40+140;
  var x2=2*mouseX/40+215;
  var y2=2*mouseY/40+140;
  ellipse(x1,y1,15,15);//绘制椭圆(x,y,宽,高) 
  ellipse(x2,y2,15,15);//绘制椭圆(x,y,宽,高)
}


相关推荐

图形学基础 | 实现OBJ文件的载入

iamitnan · 1691浏览 · 2019-05-29 10:10:17
干货!麻将平胡算法

· 992浏览 · 2019-06-06 11:45:17
Java桌球小游戏

奔跑的男人 · 638浏览 · 2019-06-11 09:37:46
图形用户界面和游戏开发

qq2360248666 · 708浏览 · 2019-06-11 09:57:01
Three.js模型隐藏或显示

吴振华 · 557浏览 · 2019-06-14 10:18:27
Cocos工程命名规则整理(node部分)

吴振华 · 875浏览 · 2019-06-14 10:24:18
加载中

0评论

评论
分类专栏
小鸟云服务器
扫码进入手机网页