Processing でオブジェクト指向っぽくネズミさんを描いてみた

前回のブログ記事からまた時間が経ってしまいました。すっかりサボりぐせがついてしまってます。 前回はellipse() を使って図形を描いてみましたが、今回はもうちょっとオブジェクト指向っぽく描いてみました。

とりま、某有名なネズミさんに似た形をellipse()使って描いてみました。

float positionX = 125;
float positionY = 125;

void setup(){
  size(400,400);
  background(255);
  smooth();
  noStroke();

  fill(0);
  ellipseMode(CORNER);
  ellipse( 0 + positionX, 0 + positionY, 50, 50 );
  ellipse( 100 + positionX, 0 + positionY, 50, 50 );
  ellipse( 25 + positionX, 25 + positionY, 100, 100 );
}
void draw(){
}

割とキレイに描けてるんじゃないかなとww ただ、毎回こいつを繰り返し処理させるのはいかがなものかと思うので、クラスオブジェクトにまとめてみました。

class Mouse{

  //プロパティ
  float x,y;  //positionX, positionY
  float face; //face
  int[] bg;

  //コンストラクタ
  Mouse( float xpos, float ypos, int[] cpos )
  {
    //set
    this.x = xpos;
    this.y = ypos;
    this.bg = cpos;

    //conf
    fill( this.bg[0], this.bg[1], this.bg[2] );
    ellipseMode(CORNER);

    //耳
    ellipse( 0 + this.x, 0 + this.y, 50, 50 );
    ellipse( 100 + this.x, 0 + this.y, 50, 50 );
    //顔
    ellipse( 25 + this.x, 25 + this.y, 100, 100 );
  }
}

実際にこのMouseクラスを使ってテキトーに並べてみました。

float positionX = 125;
float positionY = 125;

void setup(){
  size(400,400);
  background(255);
  smooth();
  noStroke();

  int[][] bg = {
    {255,191,194},
    {204,191,255},
    {191,250,255},
    {255,255,206},
    {228,238,191}
  };
  new Mouse( positionX, positionY, bg[0] );
  new Mouse( positionX*2, positionY*2, bg[1] );
  new Mouse( positionX*0, positionY*0, bg[2] );
  new Mouse( positionX*2, positionY*0, bg[3] );
  new Mouse( positionX*0, positionY*2, bg[4] );
}
void draw(){
}

class Mouse{

  //プロパティ
  float x,y;  //positionX, positionY
  float face; //face
  int[] bg;

  //コンストラクタ
  Mouse( float xpos, float ypos, int[] cpos )
  {
    //set
    this.x = xpos;
    this.y = ypos;
    this.bg = cpos;

    //conf
    fill( this.bg[0], this.bg[1], this.bg[2] );
    ellipseMode(CORNER);

    //耳
    ellipse( 0 + this.x, 0 + this.y, 50, 50 );
    ellipse( 100 + this.x, 0 + this.y, 50, 50 );
    //顔
    ellipse( 25 + this.x, 25 + this.y, 100, 100 );
  }
}

市松模様を描くクラスとかにさらにまとめれば市松模様描けちゃう! なんだか楽しくなってきた!

とりあえずここまで。