(著)山たー
フラクタルな図形を書いてみたシリーズ2。プログラムは、左クリックで階層が一つ増し、右クリックで階層が一つ減る。押しすぎに注意。
※一度灰色の画面をクリックしたら動きます。
ソースコード
int num=1; void setup(){ size(500,500); noLoop(); noStroke(); background(255); } void draw(){ background(255); Disp_Square(0,0,500,num); } void Disp_Square(float x, float y, float edge, int num){ fill(0); rect(x,y,edge,edge); if(num>1){ fill(255); rect(x,y,edge,edge); float next_edge=edge/3; Disp_Square(x,y,next_edge,num-1); Disp_Square(x+next_edge,y,next_edge,num-1); Disp_Square(x+next_edge*2,y,next_edge,num-1); Disp_Square(x,y+next_edge,next_edge,num-1); Disp_Square(x+next_edge*2,y+next_edge,next_edge,num-1); Disp_Square(x,y+next_edge*2,next_edge,num-1); Disp_Square(x+next_edge,y+next_edge*2,next_edge,num-1); Disp_Square(x+next_edge*2,y+next_edge*2,next_edge,num-1); } } void mousePressed() { if (mouseButton == LEFT) { num+=1; } else if (mouseButton == RIGHT) { num=max(num-1,0); } redraw(); }
コメントをお書きください