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

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

Processingでランダムに記号を描く

マウスをクリックすると4つの図形と非表示がランダムに切り替わります。
ellipseModeやrectModeを調整するのがちと大変かもですが、さほど難しくありません。
forの使い方をお勉強するのにいいかもしれません。

f:id:prince9:20170704071930p:plain

//グリッドのサイズ
int gridSize = 60;

//ランダムの値
int rd1;

//繰り返し描画用
int i,j;

void setup() {
size(400,400);
background(255);
noLoop();
 
}

void draw() {
background(255);



 for(j = 0; j < height/gridSize+1; j++){
   for (i = 0; i < width/gridSize+1; i++) {
     rd1 = int(random(5));
    shapeParts();
    
    /*
    グリッド線を引きたい場合は下記
    noFill();
 strokeWeight(1);
stroke(0);
 rect(gridSize * i, gridSize * j, gridSize, gridSize);
  */
  
}
}

}

void shapeParts() {
  switch(rd1) {

  case 0: 
  ellipseMode(CORNER);
   noStroke();
 fill(134,169,251);
  ellipse(gridSize * i, gridSize * j, gridSize, gridSize);

    break;
    
    case 1: 
    ellipseMode(CORNER);
    noFill();
 strokeWeight(2);
stroke(134,169,251);
  ellipse(gridSize * i, gridSize * j, gridSize, gridSize);

    break;
    
    case 2: 
      noStroke();
      fill(134,169,251);
  rect(gridSize * i, gridSize * j, gridSize, gridSize);

    break;
    
        case 3: 
     noFill();
 strokeWeight(2);
stroke(134,169,251);
  rect(gridSize * i, gridSize * j, gridSize, gridSize);

    break;
    
     case 4: 
     noFill();
 noStroke();

    break;
}

}


//マウスを押して再描画
void mousePressed() {
   redraw();
    }