===vmndlbrot.bas=== //This module is part of the original MMBasic library. It is reproduced here with kind permission of Hugh Buckle and Geoff Graham. Be aware it may reference functionality which has changed or is deprecated in the latest versions of MMBasic.// 100 'MANDELBROT.BAS - Draws mandelbrot set fractal images 102 'By loki on the Back Shed Aug 2012 103 'See topic (MM) Mandelbrot & Julia set fractals 105 'Specify initial values 110 RealOffset = -2.0 115 ImaginOffset = -1.2 130 MAXIT=70 'max iterations 165 PixelWidth = MM.HRES 170 PixelHeight = MM.VRES 175 GAP = PixelHeight / PixelWidth 180 SIZE = 2.8 185 XDelta = SIZE / PixelWidth 190 YDelta = (SIZE * GAP) / PixelHeight 195 CLS 200 'Loop processing - visit every pixel in screen area and base colour of pixel 201 ' on the number of iterations required to escape boundary conditions 202 ' If count hits max iterations then pixel hasn't escaped and is part of the set (the 'inner sea') 205 FOR X = 0 TO (PixelWidth - 1) 210 Cx = X * Xdelta + RealOffset 215 FOR Y = 0 TO (PixelHeight - 1) 220 Cy = Y * YDelta + ImaginOffset 225 Zr = 0.0 230 Zi = 0.0 235 COUNT = 0 240 'Begin Iteration loop, checking boundary conditions on each loop 250 DO WHILE (( COUNT <= MAXIT ) AND (( Zr * Zr + Zi * Zi ) <= 4 )) 255 new_Zr = Zr * Zr - Zi * Zi + Cx 260 new_Zi = 2 * Zr * Zi + Cy 265 Zr = new_Zr 270 Zi = new_Zi 275 COUNT = COUNT + 1 280 LOOP 415 PIXEL(X,Y) = ((COUNT MOD 2) - 1) * -1 500 NEXT Y 510 NEXT X 520 DO 530 a$ = INKEY$ 540 LOOP WHILE a$ = "" 600 'End listing