ProcessingでBridget Riley風のwaveを

ひさしぶりに Processing などをいじって遊んでいます。正式版が出てからそろそろ1年になろうとしているんですねー。
というわけで Bridget Riley の波みたいのを作るコードを考えてみました。あんまりキレイなコードじゃないのでやや情けないですが。
実は開発者お二人の解説書『Processing』(MIT Press)でもちょこっと紹介されているのにコードは掲載されてませんで、本を買った時から、ヒマを見て作ろうと思いつつ一年以上…。orz
線の太さが微妙に変化していくので、単に波状の線を並べてもダメでございまして、そのへんがちとめんどくさかったです。しかし、ライリーさんご本人は手で描いているんですから、これくらいでめんどくさいとか言ってはいけません。
size(446,335);
background(255);
smooth();
noStroke();
int[] xs = new int[20];
int[] ys = new int[2];
ys[0]=-25;
ys[1]=0;
int dista = 9;
int lineWid = 5;
int tbDist = 8;
int rpNum = 50;
for (int k=0; k<xs.length; k++) {
xs[k]=k*70-500;
}
for (int h=0; h<rpNum; h++){
fill(h*3);
float wave = 10;
beginShape();
curveVertex(xs[0]+h*wave,ys[1]+h*dista);
for (int i=0; i<xs.length; i++) {
int j = i % 2;
curveVertex(xs[i]+h*wave,ys[j]+h*dista);
}
for (int i=xs.length-1; i>=0; i--) {
int j = i % 2;
curveVertex(xs[i]+tbDist+h*wave,ys[j]+lineWid+h*dista);
}
curveVertex(xs[0]+tbDist+h*wave,ys[1]+lineWid+h*dista);
endShape(CLOSE);
}
