§ Иллюстрация
На картинку можно нажимать, чтобы приблизить или отдалить.
§ Код программы
SCREEN 13 setpalette f = 2.441406E-04 x0 = -1.022217# y0 = -.3725586# WHILE 1 fractal x0, y0, f LOCATE 25, 1: PRINT x0; y0; f; SELECT CASE getch CASE 1: y0 = y0 + f CASE 2: x0 = x0 + f CASE 3: y0 = y0 - f CASE 4: x0 = x0 - f CASE 13: f = f / 2 CASE 8: f = f * 2 CASE 27: END END SELECT WEND SUB fractal (x0, y0, f) DIM xc AS DOUBLE DIM yc AS DOUBLE FOR y = -100 TO 99 FOR x = -160 TO 159 xc = f * x / 100 + x0 yc = f * y / 100 + y0 c = mandel(xc, yc) PSET (160 + x, 100 - y), c NEXT NEXT END SUB FUNCTION getch DO DO: i$ = INKEY$: LOOP WHILE i$ = "" k = ASC(MID$(i$, 1, 1)) IF i$ = CHR$(0) + "H" THEN k = 1 IF i$ = CHR$(0) + "M" THEN k = 2 IF i$ = CHR$(0) + "P" THEN k = 3 IF i$ = CHR$(0) + "K" THEN k = 4 LOOP WHILE k = 0 getch = k END FUNCTION FUNCTION mandel (cx AS DOUBLE, cy AS DOUBLE) mandel = 0 x = 0 y = 0 FOR i = 0 TO 63 xt = x ^ 2 - y ^ 2 + cx yt = 2 * x * y + cy x = xt y = yt IF x ^ 2 + y ^ 2 >= 4 THEN mandel = i: EXIT FOR NEXT END FUNCTION SUB setpalette FOR i = 0 TO 63 OUT 968, i OUT 969, i OUT 969, i OUT 969, i \ 2 + 32 NEXT END SUB