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

どれだけ拡大倍率を上げても鮮やかということは、精度が無限大ということです。

従って、拡大するたびに描画速度がガクッと下がります。

しかも、グラデーションは16×16=256分割までしかできないので、カラーで描画はできません。

つまりは、1と2は用途によって使い分けて欲しいということです。

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