新しく発言する EXIT インデックスへ
フラクタル・ショー

  フラクタル・ショー 諏訪 2006/07/23 17:51:31 

  フラクタル・ショー 諏訪 2006/07/23 17:51:31  ツリーへ

フラクタル・ショー 返事を書く
諏訪 2006/07/23 17:51:31
! フラクタル・ショー
SET WINDOW -0.7,1.9,-1.1,1.5
SET TEXT FONT "Times New Roman",16

OPTION ARITHMETIC COMPLEX
DIM z0(2^16)
LET i=SQR(-1) ! 虚数を i にセット。
LET s=1

!----------
LET a=0
LET b=(3+SQR(3)*i)/6
LET r=0
LET d=2/3 ! 葉脈曲線
CALL Afine(14)

LET a=(1+i)/2
LET b=0
LET r=0
LET d=conj(a) ! カニの行列
CALL Afine(15)

LET a=(1+i)/2
LET b=0
LET r=0
LET d=-a ! ブロッコリー
CALL Afine(15)
WAIT DELAY 3

LET a=(1+i)/2
LET b=0
LET r=conj(a)
LET d=0 ! レヴィのC曲線
CALL Afine(15)
WAIT DELAY 2

LET a=(1+i)/2
LET b=0
LET r=a
LET d=0 ! ドラゴン
CALL Afine(15)
WAIT DELAY 2

LET a=0
LET b=1-EXP(-PI/5*i)
LET r=0
LET d=conj(b) ! クリヌキ正五角形
CALL Afine(14)
WAIT DELAY 1

LET a=0
LET b=(1+i)/2
LET r=0
LET d=conj(b) ! ペアノの曲線
CALL Afine(14)
WAIT DELAY 1

LET a=0
LET b=(3+SQR(3)*i)/6
LET r=0
LET d=conj(b) ! コッホの曲線
CALL Afine(12)

PLOT TEXT,AT 0.8,1.0:"END"
STOP

!----------
SUB Afine(Q)
FOR N=1 TO Q
CLEAR
DRAW axes
PLOT TEXT,AT 0.8,1.2,USING "N= %%":N
!-----
LET z=0
LET cx=1
CALL f0f1s(z) ! z=0の写像。 記憶。
!-----
LET z=1
LET cx=1
CALL f0f1(z) ! z=1の写像。 z=0の写像と線でつなぐ。
!-----
WAIT DELAY 1.5-EXP(N/40)
NEXT N
END SUB

!----------
SUB f0f1s(z)
local f0,f1
LET f0=a*z+b*conj(z)
LET f1=r*z+d*conj(z)+1-r-d
IF s<N THEN
LET s=s+1
CALL f0f1s(f0)
CALL f0f1s(f1)
LET s=s-1
ELSE
LET z0(cx)=f0
LET cx=cx+1
LET z0(cx)=f1
LET cx=cx+1
END IF
END SUB

!----------
SUB f0f1(z)
local f0,f1
LET f0=a*z+b*conj(z)
LET f1=r*z+d*conj(z)+1-r-d
IF s<N THEN
LET s=s+1
CALL f0f1(f0)
CALL f0f1(f1)
LET s=s-1
ELSE
SET LINE COLOR MOD(cx,16)+1
PLOT LINES:re(z0(cx)),im(z0(cx)); re(f0),im(f0)
LET cx=cx+1
SET LINE COLOR MOD(cx,16)+1
PLOT LINES:re(z0(cx)),im(z0(cx)); re(f1),im(f1)
LET cx=cx+1
END IF
END SUB

END


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。