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

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

Processingでチェック柄を描く

ハコのテクスチャにするつもりで、Processingで赤と黒のチェック柄を描きました。
条件分岐をもうちょいスマートに書きたいところ。

f:id:prince9:20170703182513p:plain

int rSize = 60;
int rnum = 600 / rSize;

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

void draw() {
    for(int i = 0; i < rnum; i++){
  for(int j = 0; j < rnum; j++){
    
    //iとjの余りが以下の条件のとき、それぞれ色を変える
    if (i % 2 == 0 && j % 2 == 0) {

    fill(0);

 } else if (i % 2 == 1 && j % 2 == 1) {

    fill(0);
    
 }  else if (i % 2 == 0 && j % 2 == 1) {

   fill(230,16,16);
    
 }  else if (i % 2 == 1 && j % 2 == 0) {

     fill(230,16,16);
    
 }
    
 
  rect(rSize * i, rSize * j, rSize, rSize);
}
}


}


すべて色を変えてみたのがこちら。
f:id:prince9:20170703182530p:plain

int rSize = 60;
int rnum = 600 / rSize;

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

void draw() {
    for(int i = 0; i < rnum; i++){
  for(int j = 0; j < rnum; j++){
    
    //iとjの余りが以下の条件のとき、それぞれ色を変える
    if (i % 2 == 0 && j % 2 == 0) {

    fill(0);

 } else if (i % 2 == 1 && j % 2 == 1) {

    fill(40,65,168);
    
 }  else if (i % 2 == 0 && j % 2 == 1) {

   fill(251,247,16);
    
 }  else if (i % 2 == 1 && j % 2 == 0) {

     fill(230,16,16);
    
 }
    
 
  rect(rSize * i, rSize * j, rSize, rSize);
}
}


}

【追記】
2色のチェック柄は下記のように書き換えができます。こちらのほうがスマートかも。

int rSize = 60;
int rnum = 600 / rSize;


void setup() {
  size(600, 600);
  background(255);
  smooth();
  noLoop();
  noStroke();
}

void draw() {

  
  for(int i = 0; i < rnum; i++){
  for(int j = 0; j < rnum; j++){
    if ((i + j) % 2 == 0) {
       fill(0);
    } else {
      fill(230,16,16);
    }
    
    rect(rSize * j, rSize * i, rSize, rSize);
  }
  }
}