【Processing】3の倍数と3がつく数字の時だけアカになる



前こんな記事書いた。
94.hatenadiary.jp




で、今回は余剰計算を使って世界のナベアツ桂三度)の代表ギャク《3の倍数と3がつく数字の時だけアホになる》を参考にした。
if文(とelse if文)を3回つかいました。ガチンコプログラマーはもっとスマートにかけるのかな?
いつかだれかのネタになるとしんじて投稿。(数年遅い)


size(800, 800);
background(255);
translate(width/2, height/2);
rotate(random(6.28));

float a = random(1, 15);
float b = random(1, 15);
float c = random(1, 15);
float d = random(1, 15);

int max = 40; //ネタは40までカウントする

for (int i = max; i > 0; i--) {
  fill(255);
  strokeWeight(5);
  stroke(255, 200, 0);


  if (i%3 == 0 ) {  //3の倍数
    stroke(255, 0, 0);
  } else if ( 29 <  i &&  i < 40) { //3がつく数字30 ~ 39
    stroke(255, 0, 0);
  } else if (i == 13 || i == 23) { //3がつく数字 ~ 30
    stroke(255, 0, 0);
  }


  beginShape();
  vertex(b*i, a*i);
  vertex(-b*i, a*i);  
  curveVertex(b*i, -0*i);
  curveVertex(b*i, -a*i);
  curveVertex(-c*i, -a*i);
  curveVertex(-c*i, d*i);
  curveVertex(-0*i, d*i);
  curveVertex(b*i, a*i);
  vertex(-b*i, -a*i);  
  vertex(b*i, -a*i);
  endShape(CLOSE);
}

save("save/3の倍数と3の数字のつくときだけ赤になります.png");