// マウスが押されたら波紋を描く int N = 100; int[] x = new int[N]; // 波紋のX座標 int[] y = new int[N]; // 波紋のY座標 int[] d = new int[N]; // 波紋の直径 int stage; void setup() { size(200, 200); // 画面サイズ framerate(30); // 描画速度 for(int i=0; i<N; i++){ x[i] = y[i] = d[i] = 0; // 値の初期化 } stage=0; noFill(); background(255); // 画面消去 } // 画面描画 void draw() { for(int i=0; i<N; i++){ if(d[i] > 0) { stroke(random(0,255)); ellipse(x[i], y[i], d[i], d[i]); d[i] += 10; // 直径を増やす } } } // マウスが押されたら… void mousePressed() { background(255); // 画面消去 } // マウスが動いたら… void mouseMoved() { stage++; if(stage==N){ stage=0; } x[stage] = mouseX; // マウスのX座標 y[stage] = mouseY; // マウスのY座標 d[stage] = 1; }