//再帰回数を増やして、線幅を狭く、アルファ縮小 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, height/2,0); 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 r=random(0,255); float g=random(0,r); float b=random(0,g); fill( r,g,b,2 ); }