尾を引く軌跡を残す
int [] xArray = new int [50]; int [] yArray = new int [50]; int fillColor = 200; void setup() { size(600, 600); smooth (); background(0); } //前に描いた部分を徐々に消していくメソッド void fadeOut() { noStroke(); fill(0, 30); //背景色と同じ色で半透明 rectMode(CORNER); //全体を塗り潰す rect(0, 0, width, height); } void draw() { //配列のデータをスライドする for ( int i = 0 ; i < xArray.length-1 ; i++){ xArray[i] = xArray[i+1]; yArray[i] = yArray[i+1]; } //配列の最後の要素をマウス座標に xArray[xArray.length-1] = mouseX; yArray[yArray.length-1] = mouseY; //丸を小さくしながら軌跡を描く for ( int i = 0 ; i < xArray.length-1 ; i++){ fill(50, 50, fillColor--, 50); //少しずつ色を変える ellipse(xArray[i], yArray[i], i, i+5); } fillColor = 200; //色を元に戻す fadeOut(); }
Copy