(published: Jul. 6, 2001)
フラクタル図形の一ツであるシェルピンスキー図形を、 再帰処理の応用で描くプログラムです。
実行後、三角形の幅、高さ、再帰処理の回数を入力すると、 それに対応するシェルピンスキー図形を描きます。
100 sub dat(x,y,w,h) 110 x0=x:y0=y 120 x1=x+w:y1=y 130 x2=x+w/2:y2=y+h 140 line(x0,y0)-(x1,y1),1 150 line(x1,y1)-(x2,y2),2 160 line(x2,y2)-(x0,y0),4 170 endsub 200 sub delta(x,y,w,h,r) 210 xa=x:ya=y 220 xb=x+w/2:yb=y 230 xc=x+w/4:yc=y+h/2 240 w0=w:w1=w/2:h0=h:h1=h/2 250 r0=r 260 if r0=1 then dat(xa,ya,w0,h0) else delta(xa,ya,w1,h1,r0-1):delta(xb,yb,w1,h1,r0-1):delta(xc,yc,w1,h1,r0-1) 270 endsub 999 cls 3 1000 input "width(1-1599)",wi:if wi<1 or wi>1599 then 1000 1010 input "height(1-1199)",he:if he<1 or he>1199 then 1010 1030 input "repeat(1-99)",re:if re<1 or re>99 then 1020 2000 delta(0,0,wi,he,re) 2010 print "retr[y]/e[n]d" 2015 k$="" 2020 while k$<>"y" and k$<>"n" 2030 k$=inkey$ 2040 wend 2050 if k$="y" then 999 2060 end