!REM « Ф Р А К Т А Л » gr.open 255,200,200,200 gr.orientation 0 gr.screen w,h gr.cls gr.set.antialias 4 Kc = 16 %количество цветов для фрактала a = 240 b = 160 %размер экрана в пикселах по x и y !Нужно задавать (менять) значения p,q !для получения различных рисунков !p = -0.1: q = -1.92 !p = 0.5: q = -0.1 !p = -0.5: q = -0.9 !p = -0.5: q = 0.9 !p = 0.5: q= 1 p = -0.5 q = 0.9 s100 : Xmin = -1.75 Ymin = -1.25 % миним. коорд. фрактала Xmax = 1.75 Ymax = 1.25 % максим.коорд. фрактала M = 50 %максимальное расстояние для поиска атрактора dx = (Xmax - Xmin) / (a - 1) %размер пиксела по оси x dy = (Ymax - Ymin) / (b - 1) %размер пиксела по оси y FOR Nx = 1 TO a - 1 %цикл сканирования всех пикселов для FOR Ny = 1 TO b - 1 %определения их цвета xk = Xmin + Nx * dx yk = Ymin + Ny * dy k = 0 s200 : %формулы определения координат атрактора xk1 = xk * xk - yk * yk + p yk1 = 2 * xk * yk + q k = k + 1 %число итер. для данного начального пиксела c = k %цвет пиксела, соответствующий данному числу s300 : r = xk1 * xk1 + yk1 * yk1 %расст.от нач. до кон.точки xk = xk1 yk = yk1 IF r > M THEN c = k: GOTO s400 %условие сходимости IF k = Kc THEN c = 0: GOTO s400 %повторение палитры GOTO s200 s400 : ! c – это цвет !gr.color 255,c+rnd()*200,c+rnd()*200,c+rnd()*200 gr.color 255,c*15,c*15,c*15 !gr.point nc1,Nx*5,Ny*5 gr.circle nc1,Nx*5,Ny*5,3 !gr.render NEXT Ny NEXT Nx gr.render pause 10000 !END