まゆたまガジェット開発逆引き辞典

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを。参照していないものに関しては、コピペ改変まったく問いません

Processingで四角形を2つくっつけて、複数ランダムに描く

タイルに色を塗ろうと思ったのですが、配色がメンドくてプログラムに任せた第二弾。
今度は四角形タイルです。書き換えればパズルもいけそうですね。

quadを2つくっつけて四角形にしています。例によってマウスクリックでランダムに形が生成されます。
参考にさせて頂いたサイトがこちら。
コンピュータ基礎II プログラムで絵を描こう


f:id:prince9:20170723162226p:plain

void setup() {
 size(600, 600 );
  background(#FFFFFF);

smooth();
noStroke();
colorMode( HSB, 360, 100, 100);
  noLoop();  
 
}

void draw() {
    background(#FFFFFF);

    //左と上の空き量の設定=描画開始位置の設定,図形の間隔の設定(図形サイズ+隙間。この場合だと大きさが100で隙間が50)
  tileMoz(30,30,150);
}

void tileMoz(int posiX,int posiY,int space) {
for( int i = 0; i < 3; i++ ) {
  for( int j = 0; j < 3; j++ ) {



//上の四角の右下・下の四角の右上、上の四角の左下・下の四角の左上をランダムに
     int posiYran1 = int(random(posiY,posiY+100));
   int posiYran2 = int(random(posiY,posiY+100));

   //全体のサイズが100、隙間の間隔が50
    noStroke();
       fill(int(random(360)),30,100);
       quad( posiX+ j * space, posiY+ i * space,
          posiX + 100+ j * space, posiY+ i * space,
          posiX + 100+ j * space, posiYran1+ i * space,
          posiX+ j * space, posiYran2+ i * space);

                  noStroke();
       fill(int(random(360)),30,100);
    quad( posiX+ j * space, posiYran2+ i * space,
          posiX + 100+ j * space, posiYran1+ i * space,
          posiX + 100+ j * space, posiY + 100+ i * space,
          posiX+ j * space, posiY + 100+ i * space);




  }
}
	}


	void mousePressed() {
  redraw();
}