#15:DLT

(published: Jul. 6, 2001)

フラクタル図形の一ツであるシェルピンスキー図形を、 再帰処理の応用で描くプログラムです。

ダウンロード(zip形式, 79.5KB)

内容

実行後、三角形の幅、高さ、再帰処理の回数を入力すると、 それに対応するシェルピンスキー図形を描きます。

ソース紹介

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


H-man AND NOW
作:Nishino Tatami (ainosato@vc-net.ne.jp)