Dancing Fool (self generating ballet)

See: https://openprocessing.org/sketch/1519493

// NOTICE: CODE IS A MESS


void setup(){
  size(500,800); 
  background(255); 
  translate(width/2-10, height/2-5); 
  frameRate(5);
}

void draw(){
  mouse = true; 
  background(255, 192, 203); 
  translate(width/2-10, height/2-180); 
  generate();
}



public void arm(float c){
  float p1x = 0;
  float p1y = -100;
  float p2x = p1x + random(5,20);
  float p2y = p1y + random(10);
  float p3x = p2x + random(10);
  float p3y = p2y + random(50, 100);
  float p4x = p3x + random(-5);
  float p4y = p3y + random(10,30);
  float p5x = p3x + random(20,200);
  float p5y = p3y + random(10,100);
  fill(c);
  beginShape();
  vertex(p1x,p1y);
  vertex(p2x,p2y);
  vertex(p3x, p3y);
  vertex(p3x, p3y);
  vertex(p5x, p5y);
  vertex(p5x, p5y+ random(5,10));
  vertex(-p4x,p4y);
  vertex(-p3x,p3y);
  vertex(-p2x,p2y);
  vertex(p1x,p1y);
  endShape();
}

float offset;
public void torso(float c){
  float p1x = random(10,20);
  float p1y = -100;
  float p2x = p1x + random(10);
  float p2y = p1y + random(100,150);
  float p3x = p2x + random(10);
  float p3y = p2y + random(100, 150);
  fill(c);
  beginShape();
  vertex(p1x,p1y);
  vertex(p2x,p2y+ random(40));
  vertex(p3x, p3y+ random(40) + 20);
  vertex(-p3x, p3y+ random(40)+ 20);
  vertex(-p2x, p2y + random(40));
  vertex(-p1x, p1y);
  vertex(p1x, p1y);
  endShape();
  offset =  p3y;
}

public void legs(float c){
  float p1x = 0;
  float p1y = offset;
  float p2x = p1x + random(5,20);
  float p2y = p1y + random(10);
  float p3x = p2x + random(10);
  float p3y = p2y + random(50, 100);
  float p4x = p3x + random(-5);
  float p4y = p3y + random(10,30);
  float p5x = p3x + random(10,150);
  float p5y = p3y + random(10,300);
  fill(c);
  beginShape();
  vertex(p1x,p1y);
  vertex(-p2x,p2y);
  vertex(-p3x, p3y);
  vertex(-p3x, p3y);
  vertex(-p5x, p5y);
  vertex(-p5x, p5y+ random(5,10));
  vertex(p4x,p4y);
  vertex(p3x,p3y);
  vertex(p2x,p2y);
  vertex(p1x,p1y);
  endShape();
}

public void head(float c){
  float p1x = 0;
  float p1y = offset+20;
  float p2x = p1x + random(5,20);
  float p2y = p1y + random(10,20);
  float p3x = p2x + random(10);
  float p3y = p2x + random(20,25);
  fill(c);
  beginShape();
  vertex(p1x,-p1y);
  vertex(-p2x,-p2y);
  vertex(-p3x, -p3y+ 20);
  vertex(-p3x, -p3y + 20);
  vertex(p3x,-p3y);
  vertex(p2x,-p2y);
  vertex(p1x,-p1y);
  endShape();
  fill(255);
  ellipse(10,-offset + 20,30,30);
  fill(0);
  ellipse(10,-offset +20,10,10);
}





public void generate(){
  arm(200);
  legs(200);
  torso(220);
  head(220);
  arm(220);
  legs(220);
}

boolean mouse = false; 
void mousePressed(){
  
  if(mouse == false){
    
    mouse = true; 
    background(255, 192, 203); 
    translate(width/2-10, height/2-180); 
    generate();
    
  }
  
}

void mouseReleased(){
  
    mouse = false; 
    
}

Leave a Comment