Processingで四角形を2つくっつけて、複数ランダムに描く
タイルに色を塗ろうと思ったのですが、配色がメンドくてプログラムに任せた第二弾。
今度は四角形タイルです。書き換えればパズルもいけそうですね。
quadを2つくっつけて四角形にしています。例によってマウスクリックでランダムに形が生成されます。
参考にさせて頂いたサイトがこちら。
コンピュータ基礎II プログラムで絵を描こう
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(); }