Mandelbrot1
Mandelbrot集合のz0=0.5における様相の描画ツールその1〜

拡大倍率を上げ過ぎると、図形が汚くなってしまいます。

この問題を解決したツールはまた後日アップします。

100 OPTION ARITHMETIC NATIVE
110 SET AREA COLOR 0
120 DIM w(8)
130 DIM h(8)
140 LET w(1)=-2
150 LET w(2)=4
160 LET h(1)=-3
170 LET h(2)=3
180 INPUT PROMPT "精度を指定してください。(2〜255)":acc
190 FOR k=2 TO acc
200    SET COLOR MIX(k) 1,k/acc,k/acc
210 NEXT k
220 DO
230    SET WINDOW w(1),w(2),h(1),h(2)
240    FOR i=w(1) TO w(2) STEP 6/(501*10^l)
250       FOR j=h(1) TO h(2) STEP 6/(501*10^l)
260          LET x=0.5
270          LET y=0
280          FOR k=1 TO acc
290             LET a=x-x^2+y^2
300             LET b=y-2*x*y
310             LET x=a*i-b*j
320             LET y=a*j+b*i
330             IF x^2+y^2>10 THEN GOTO 370
340          NEXT k
350          SET LINE COLOR 1
360          GOTO 380
370          SET LINE COLOR k
380          PLOT LINES:i,j
390       NEXT j
400    NEXT i
410    LET l=l+1
420    pause "拡大したい個所を左クリックしてください。右クリックで停止します。"
430    DO UNTIL left=1
440       mouse poll x,y,left,right
450       IF right=1 THEN GOTO 770
460    LOOP
470    LET left=0
480    LET t=3*10^(-l)
490    LET w(3)=x-t
500    LET w(4)=x+t
510    LET h(3)=y-t
520    LET h(4)=y+t
530    LET col=0
540    FOR i=1 TO 7
550       LET col=1-col
560       SET LINE COLOR col
570       CALL BO(w(3),h(3),w(4),h(4))
580       WAIT DELAY 0.08
590    NEXT i
600    FOR i=1 TO 2
610       LET w(i+4)=(w(i+2)-w(i))/10
620       LET h(i+4)=(h(i+2)-h(i))/10
630    NEXT i
640    FOR i=0 TO 10
650       FOR j=3 TO 4
660          LET w(j+4)=w(j)-i*w(j+2)
670          LET h(j+4)=h(j)-i*h(j+2)
680       NEXT j
690       PLOT AREA:w(7),h(7);w(8),h(7);w(8),h(8);w(7),h(8)
700       WAIT DELAY 0.01
710    NEXT i
720    FOR i=1 TO 2
730       LET w(i)=w(i+2)
740       LET h(i)=h(i+2)
750    NEXT i
760 LOOP
770 END
780 EXTERNAL SUB BO(x1,y1,x2,y2)
790 OPTION ARITHMETIC NATIVE
800 PLOT LINES:x1,y1;x1,y2;x2,y2;x2,y1;x1,y1
810 END SUB