Processingで絵を書く

お正月ですが、今日も何か書きます。

今日は、ちょっとしたプログラミングをします。Processing という、無料で使うことができるプログラミング言語を使用します。
下のコードを実行すると、そのたびに毎回異なる柄を出力します。
Lineというクラスを作り、ひとつひとつのオブジェクトがひとつ前の縦長の四角形を描き終わった後、右側に新しい四角形を描いていきます。
出力画面では線に見えていますが、四角形を書くrectという関数を使っています。

Line[] l; // ”Line” というクラスの配列を用意
int start; // 線を描く始点のx座標

void setup(){
  size(360,120);
  start = 0;
  l = new Line[100]; // new関数で100個のオブジェクトを生成
  for(int i = 0; i < l.length; i++){
    l[i] = new Line();
  }
}

void draw(){
  while(start<width){
    for (int i = 0; i < l.length; i++){
      l[i].display(); // 線を描く
    }
  }
}

class Line{ // Lineクラス
  float r, g, b, x;
  Line(){
    x = random(1,10);
    r = random(0,255);
    g = random(0,255);
    b = random(0,255);
  }
  void display(){
    start += x;
    fill(r, g, b);
    noStroke();
    rect(start, 0, x, height);
  }
}

 

例えばこんなふうに出力されます。


 

補足です(01/02)。線を描くだけなら、クラスも配列も使わずに、もっと簡略化できましたね。配列もクラスも使わずに書いてみました。

float start, r, g, b, x;

void setup(){
  size(360,120);
  start = 0;
}

void draw(){
  while(start < width){
    x = random(10);
    r = random(0,255);
    g = random(0,255);
    b = random(0,255);
    fill(r, g, b);
    noStroke();
    rect(start, 0, x, height);
    start += x;
  }
}

 

Leave a Reply

Your email address will not be published. Required fields are marked *