?

Log in

No account? Create an account

Фракталы

«Если долго всматриваться в бездну — бездна начнёт всматриваться в тебя» © Ницше

Previous Entry Share Next Entry
Эволюция фрактальных монстров
xcontcom
Переписал статью и отправил на хабру :)

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

Геометрические фракталы



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

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

Interfece

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

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:

Фрактал 1Фрактал 2Фрактал 3Фрактал 4Фрактал 5Фрактал 6Фрактал 7Фрактал 8Фрактал 9Фрактал 10Фрактал 11Фрактал 12Фрактал 13Фрактал 14Фрактал 15

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




Recent Posts from This Journal

  • Как сварить пиво в домашних условиях.

    Две недели занимался дикой фигней - варил пиво. Но пиво не простое, а... под кат Технология варки пива довольно незамысловатая. 1. Проращивается…

  • ((x*y) mod m) mod n

    Очень любопытные картинки получаются! Берем x, умножаем на y (соответствующие координаты пикселя на картинке). Получили число. Взяли остаток…

  • И еще немного о двоичной системе

    Немного с алиасингом поиграемся. Без предисловия. Под кат. В предыдущей записи разобрались с делением. А как у нас обстоят дела с умножением?…


  • 1

Красота несусветная!


Алгебраические более естественны.

Красивые картинки получаются.

Здравствуйте! Ваша запись попала в топ-25 популярных записей LiveJournal для Украины. Подробнее о рейтинге читайте в Справке.

Самый первый рисунок нужно озаглавить "Макако Пушкиндъ и Его Эмбрионы"...

Чей-то эмбрион получился

Круто! А добавить цвет не планируете?

Вот, я про цвет тоже подумала. Но так выглядит как гравюры. Тоже круто.


Черно-белые выглядят контрастно.

А как Вы задаёте эволюцию? На мой взгляд, это в общем и целом эволюционная история. А чем она побуждается? Ясное дело, что условиями "Если... то". То есть, одними логическими установками?

Каждый фрактал рисуется с помощью набора углов (45°, -60°, 15° и т.д.)

В качестве примера, Дракон Хартера-Хейтуэя (Был придуман тремя умными физиками из NASA). Рисуется с помощью углов 45° и -45°. Вот тут наглядно:

Дракон Хартера-Хейтуэя

В верхней части картинки этот фрактал на 17-й итерации, внизу первые 5 итераций.

Или вот другой фрактал (без имени):

Фрактал без имени

Тут используются углы [45°,-45°,-45°,45°]

Набор углов (генов) запишем в массив (генотип). В популяции находится фиксированное число особей (фракталов) с генотипами сгенерированными случайным образом. Пользователь, поочередно сравнивая два фрактала, выбирает тот, который ему больше нравится, тем самым повышая приспособленность выбранного фрактала. Те фракталы, которые пользователь выбирает чаще, "выживают" и скрещиваются. Оставшиеся фракталы "вымирают". Скрещивание происходит так: берем двух предков, комбинируем их гены (опять же случайным образом) и заполняем ими генотипы двух потомков. Проделываем эту операцию для всех приспособленных фракталов. Предками и потомками заполняем новую популяцию. Некоторый процент особей (фракталов) в новой популяции мутирует - берем случайный ген из генотипа и заменяем его на случайное значение. Тем самым добавляем разнообразия в генофонд фракталов.

Все так же, как и в биологическом эволюционном процессе, только у живых организмов генов в разы побольше :)

А что? Жизненно!

Интересные шедевры!) для себя поняла: брошь - это тоже фрактал, у меня как раз есть похожая на одно изображение)

А еще на вышивки похоже. Только их ведь ни с помощью фракталов рисовали.

немного не поняла - а что значит помощь фракталов? похоже, у меня неверное трактование самого понятия фрактал. В моем понимании фрактал... ну это как готовый муравейник (вот что=то такое первое на ум пришло), а Вы как бы намекаете, что фрактал - это действие муравьев при строительстве муравейника.

Умные люди, проясните плиз... что для вас фрактал? это картинка красивая или способ ее построения (рождения)?

Фрактал - абстрактный объект, обладающий свойствами самоподобия. Если увеличить фрагмент фрактала - он будет выглядеть как весь фрактал:

Самоподобие

Вот. Искал для себя повод перепостить. Перепощу из-за определения))

Множество Мандельброта является одним из самых известных фракталов, в том числе за пределами математики, благодаря своим цветным визуализациям. Его фрагменты не строго подобны исходному множеству, но при многократном увеличении определённые части всё больше похожи друг на друга. На ютубе достаточно много фильмов про это множество. Вот пример бесконечного множества. При увеличении мелкий фрагмен будет такимже и так до бесконечности. https://3.downloader.disk.yandex.ru/preview/1ef1b04ad0b80190d525d59bc35ac68ce756ab727ee0e9d09766427195fa1325/inf/rgvCTF39R58Ft1H-iA3Lctbremw_QmygiTnb3B3SturF8AEdb0ybmIimqWV-LFNwq_J6bpmRyOJonT3VoXnDag%3D%3D?uid=80571039&filename=Fractal1%D0%B9%D1%86%D1%83%D1%83%D1%86%D1%83%D1%83.jpg&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&tknv=v2&size=1280x815

Круть ! ;-)

К.Л.М.

"Покрутить мышкой фрактал в трех измерениях можно здесь."
Для меня было самое прикольное в данной работе)) жаль, что фрактал - это абстрактный объект, красивое всегда хочется потрогать))

Мне уже как-то снились Ваши фракталы, только в цвете :-) Может еще приснится эта красота.

Интересная у Вас тематика блога. Почитаю на досуге, если он будет)

красивые штуки, может их на 3D-принтере можно как-то распечатать. Ведь можно задать угол наклона каждого сектора? Мне кажется замечательные сувениры получились бы.

не пробовали добавлять картинку в высоком разрешении (метров на 100 :) ), что бы она по клику открывалась? жж позволяет такое делать. а то слишком размытое изображение, не по рассматривать :)

Гениальные узоры!

Я тут увидела осьминогов)

  • 1