//再帰回数を増やして、線幅を狭く、アルファ縮小 //三角関数で左右に揺らす float r =0; void setup(){ size(640,360); background(255); noStroke(); fill(10,10,10,1); } void loop(){ //fill(abs(sin(r*0.9))*255,0,0,5); float rad = mouseX * 12 / 640.0; float leng = mouseY / 320.0 * 200; translate(width/2 + cos(r*0.5) * 250, height/2,0+ sin(r*0.6) * 150); r+=0.01; rotate(r); saiki(3, rad, leng); } void saiki(int lv, float r, float l){ if(lv <0){ return; } lv-=1; for(int i=0; i<3; i++){ rotate(r); push(); rect(0,0,2,l); translate(8,l,0); l*= 0.8; saiki(lv, r, l); pop(); } } void mousePressed(){ setRcolor(); } void setRcolor(){ float b=random(0,255); float r=random(0,b); float g=random(0,r); fill( r,g,b,3 ); }