前記事589では、点列の初期値:Z0を点(-1,0)・・・・これは、マンデルブロ集合画像を左側に倒れた「雪ダルマ」に見たてたときの頭部の、ほぼ中心点・・・の周りを一定値 (半径:R=0.26の円) に変化させていったきの点Z10~Z15 の挙動を調べた。今回は、Z0の其の半径:Rを、R=0.085→0.69 に連続的に変えていった場合のZ10~Z15の挙動をアニメ化したものである。
そのアニメ画像は→
Z10~Z15の軌跡の変容
前回同様に、画像の中のマンデルブロ集合の縁部分(灰色)の座標と点列の座標は一致させている。
上のアニメ画像を見れば分かるように、R(=Z0)が小さい場合は、点が 2 つのグループに分かれている。
左側のグループは、Z0(黒),Z10(青),Z12(橙),Z14(水)
右側のグループは、 Z11(赤),Z13(緑),Z15(茶)
ところが、R(=Z0)が、マンデルブロの縁(ふち)に接近するにつれて、Z10~Z15の挙動は複雑に変化している。
R(=Z0)が其の縁を離れるに従い、その複雑さ消え・・・というより、Z10~Z15の値が大きくなり表示画面の外へ出てしまい、それらの挙動が見えなくなってしまう・・・Z10~Z15の、いわば乱舞が始まる。
実は、其の乱舞は、R(=Z0)が、マンデルブロ集合の縁部分(灰色)より内側、即ち、マンデルブロ集合部に入り込むと始まるのだ。
もっと正確に言うと、その乱舞が表示画面で見えるのは、R(=Z0)がマンデルブロ集合に在るときなのだ。
***
画像に示した、マンデルブロ集合の縁(ふち)部分(灰色)は近似的なもので真の縁より外側にある。
もし、Z0を真の縁にそって移動させていったら、Z10~Z15 挙動はどのような形態を示すだろうか。
カオス状態となることが予想されるが、その画像自体は、どのようになるだろうか?
いずれにしても、マンデルブロ画像は神秘性は底が知れない!!
***
以下、参考のために此のアニメ作成のBASIC/95のプログラムを下記しておく。
行270でJ=20→163にして144枚の画像を作り21秒で再生させた。
10 REM 点列の座標の中心をマンデルブロ集合の頭部の中心へ移動させたとき。R可変の場合。
11 REM 行391 N2=0→100 101枚
20 CHAIN MERGE "C:\BASIC\PRO\SUBR\COLOR右上表示.BAS",60,ALL
60 CHAIN MERGE "C:\BASIC\PRO\SUBR\KOSHIKI.BAS",90,ALL
90 CHAIN MERGE "C:\BASIC\PRO\SUBR\ER1.BAS",100,ALL
100 ON ERROR GOTO 50000
110 CONSOLE ,,0,1
120 COLOR 0,7,,,2
130 CLS 3
140 GOSUB 10000
150 GOSUB 3000
160 JMAX=240:KMAX=5000:RMAX=1.36:X0=-1:Y0=0
170 DR=RMAX/JMAX:DTH=2*P/KMAX:AA=JMAX/RMAX:NMAX=15
180 CXS=-1.5:D=1.36/320:CYS=-240*D:DTHDO=180*DTH/P
190 K00=(-1-CXS)/D:J00=(0-CYS)/D:PSET(K00,J00),1
200 K0=(-0.14-CXS)/D:J0=(0-CYS)/D:PSET(K0,J0),2
210 OPEN "C:\BASIC1\RUN\DATAマンデルC.DAT" FOR INPUT AS #1
220 IF EOF(1) THEN 260
230 INPUT #1,X,Y
240 PSET (X,Y),15
250 GOTO 220
260 CLOSE #1
270 J=20
280 R=J*DR
290 LOCATE 0,0:PRINT "点Z0の移動円の中心点をマンデルブロ集合の頭部の中心へ"
300 LOCATE 0,1:PRINT "移動させた時の点列:Z0,Z10~Z15の軌跡"
310 LOCATE 50,22:PRINT "マンデルブロ集合の重心点=(-0.14,0)"
320 LOCATE 50,21:PRINT "点列画像の中心点=(-1,0)"
330 LOCATE 70,3:PRINT "Z0→黒"
340 LOCATE 70,5:PRINT "Z10→青"
350 LOCATE 70,6:PRINT "Z11→赤"
360 LOCATE 70,7:PRINT "Z12→橙"
370 LOCATE 70,8:PRINT "Z13→緑"
380 LOCATE 70,9:PRINT "Z14→水"
390 LOCATE 70,10:PRINT "Z15→茶"
400 FOR K=0 TO KMAX
410 TH=K*DTH:THH=TH
420 CX=R*COS(TH)+X0
430 CY=R*SIN(TH)+Y0
440 X=0:Y=0
450 FOR N=0 TO NMAX
460 X1=X
470 X=FNR2(X,Y)+CX
480 Y=FNI2(X1,Y)+CY
490 IF N>0 AND N<10 THEN 550
510 K1=(X-CXS)/D:J1=(Y-CYS)/D
520 IF K1<0 OR J1<0 THEN 600
530 IF K1>640 OR J1>480 THEN 600
540 GOSUB 620
560 PSET (K1,J1),C
580 NEXT N
600 NEXT K
610 END
620 REM Z0,Z10~Z15の色の決定
630 IF N=0 THEN C=0
640 IF N=10 THEN C=1
650 IF N=11 THEN C=2
660 IF N=12 THEN C=3
670 IF N=13 THEN C=4
680 IF N=14 THEN C=5
690 IF N=15 THEN C=10
700 RETURN