Эволюция фрактальных монстров

May 20, 2017 10:29

Переписал статью и отправил на хабру :)

Сегодня будем рисовать геометрические фракталы, которым уделяют незаслуженно мало внимания. А между тем, тут каждый фрактал - маленький шедевр, поражающий воображение!





Кроме того, полностью переписал весь код. Серверная часть была на PHP. Переписал на JavaScript и перенес в браузер пользователя.

Изменил интерфейс:



Добавил несколько нереально крутых опций. Теперь можно посмотреть Parents Tree:



Если правый предок отсутствует в дереве - значит особь перешла в новую популяцию без скрещиваний.

Доступна опция "Draw Mode", которая изменяет способ отрисовки фракталов

[draw mode]
switch(drawmode){
case 1:
position=recurs(context, arr, position, n-1, x0, y0, xx, yy, line);
position=recurs(context, arr, position, n-1, x1, y1, xx, yy, line);
break;
case 2:
position=recurs(context, arr, position, n-1, xx, yy, x0, y0, line);
position=recurs(context, arr, position, n-1, xx, yy, x1, y1, line);
break;
case 3:
position=recurs(context, arr, position, n-1, xx, yy, x0, y0, line);
position=recurs(context, arr, position, n-1, x1, y1, xx, yy, line);
break;
default:
position=recurs(context, arr, position, n-1, x0, y0, xx, yy, line);
position=recurs(context, arr, position, n-1, xx, yy, x1, y1, line);
}


Всего-то меняем координаты местами в первом и/или втором вызове рекурсивной функции, но фракталы меняются до неузнаваемости. Несколько "маленьких шедевров" нарисованный в draw mode 3 и draw mode 2:

















Вот здесь можно поиграться с эволюцией: http://fractal.xcont.com/
На хабре полное описание: https://habrahabr.ru/post/328568/
Исходники можно посмотреть или напрямую в браузере или на GitHub: https://github.com/xcont/fractals

эволюция, геометрические фракталы, генетические алгоритмы, фракталы

Previous post Next post
Up