[Prpcessing]キャラクターを描く（空也上人っぽいもの）

#無限ループする空也上人
![Endress_Kuya_Shonin.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554244/e2c52cf1-fc00-b778-9791-fc840ef4a36d.gif)

#なにこれってなったみなさん
私もそう思います
（しかも溢れ出る手抜き感）

#動機
授業課題だったからやった
誰でもよかった
魔が差してやった
悪気はなかった

などと供述しており

#プログラム
拡張子本当は.pdeですけど、javaにした方が色ついて見やすいかなって
当時日本語打てるの知らなくて、コメントが日本語じゃないです
（直す気もないです）

```Endress_Kuya_Shonin.java

Shonin kuya1;
Shonin kuya2;
Shonin kuya3;

void setup(){
  //size(1500,1000);
  fullScreen();
  frameRate(30);
  kuya1 = new Shonin(0.1f , width/2,height/2);
  kuya2 = new Shonin(1.4f , width/2,height/2);
  kuya3 = new Shonin(19.6f , width/2,height/2);
}

void draw(){
  background(225);
  kuya1.paint();
  kuya2.paint();
  kuya3.paint();
}

class Shonin{
  float ratio ;
  float x;
  float y;
  
  public Shonin(float ratio ,float X ,float Y){
     this.ratio = ratio;   
     x = X;
     y = Y;
  }
  
  void BigLighter(){
    ratio *= 1.01f;
    if(ratio > 20){
      ratio = 0.008f;
    }
  }
  
  public void paint(){
    
    fill(125,125,125);
  
    noStroke();
    //Neck
    qua(123,90,247,80,257,120,153,160);
    
    //Face
    qua(120,-51,291,-51,251,80,97.5f,20);
  
    // paint ago
    qua(99,18,251,78,119,90,98,55);
    strokeWeight(5*ratio);
    stroke(125,125,125);
    lin(251,78,119,90);
  
    stroke(90,90,90);
    strokeWeight(3*ratio);
  
    //ago
    bez(97.5f,50,97.5f,90,110,90,120,90);
  
    fill(225);
    //Neck front
    bez(120,90,150,90,160,110,150,160);
  
    //Neck Back
    bez(250,80,230,100,240,110,260,120);
  
    fill(125,125,125);
  
    //long ago side
    bez(120,90,150,90,190,110,220,70);
  
    //Ear
    cur(10,40,230,40,240,-20,10,140);
    cur(130,40,240,20,240,-1,130,120);
  
    //under Nose
    lin(97.5f,30,102,1);
  
    //Nose
    bez(125,-35,125,-15,60,-1,110,13);
    
    //over Nose
    lin(111,-20,120,-50);
  
    //Eye
    cur(370,90,170,-30,170,-30,370,-60);
  
    //Skin Head
    bez(120,-50,150,-110,260,-110,290,-50);
  
    //Koutouboo
    bez(290,-50,320,-10,270,75,250,80);
  
    //Body
    en(225,390,350,550);
    
    //minizou from mouth
    for(int i = -180;i<=70;i +=50){
      mini(i);
    }
  
    //Mouth
    fill(0);
    stroke(90,90,90);
    strokeWeight(2*ratio);
    cur(-120,-45,97.5f,30,97.5f,60,-120,55);
  
    strokeWeight(1*ratio);
    stroke(0);
    bez(97.5f,30,93,35,93,45,97.5f,60);
  
    BigLighter();
  }
  
  void qua(float x1 , float y1 , float x2 ,float y2 ,
        float x3 , float y3 , float x4 , float y4){
          quad( x + x1*ratio , y + y1*ratio,
                 x + x2*ratio , y + y2*ratio,
                 x + x3*ratio , y + y3*ratio,
                 x + x4*ratio , y + y4*ratio
          );
   }
 
  void lin(float x1 , float y1 , float x2 ,float y2 ){
    line(x + x1*ratio ,y + y1*ratio ,x + x2*ratio, y+y2*ratio);
  }

  void mini(float posX){
  
    noFill();
    strokeWeight(5 * ratio);
    stroke(125,125,125);
    cur(posX-2,-25,posX,45,posX+50,45,posX+52,-25);
  
    if(posX == 20){ 
      return;
    }
  
    noStroke();
    fill(125,125,125);
    en(posX,10,10,10);
    en(posX,30,15,30);
  }

  void en(float X ,float Y ,float enWidth,float enHeight){
    ellipse(x + X * ratio, y + Y*ratio , enWidth*ratio , enHeight*ratio);
  }

  void cur(float x1 , float y1 , float x2 ,float y2 ,
        float x3 , float y3 , float x4 , float y4){
          curve( x + x1*ratio , y + y1*ratio,
                 x + x2*ratio , y + y2*ratio,
                 x + x3*ratio , y + y3*ratio,
                 x + x4*ratio , y + y4*ratio
          );
   }
 
   void bez(float x1 , float y1 , float x2 ,float y2 ,
        float x3 , float y3 , float x4 , float y4){
          bezier( x + x1*ratio , y + y1*ratio,
                 x + x2*ratio , y + y2*ratio,
                 x + x3*ratio , y + y3*ratio,
                 x + x4*ratio , y + y4*ratio
          );
   }

} // class end }
 
```

#なんでこうしたし
**A.静止画つまらなかったから**

現場からは以上です