Архив Тэгов: Рекурсии и фракталы

Юмор

Рекурсивная борода — это модно! Продолжение фракталов…

Фрактал из Халк Хогана. Рекурсия - это просто!В продолжении опубликованной мной ранее фотографии харизматичного реслингиста Халка Хогана с дорисованной рекурсивной бородой, в Интернете стало появляться много других забавных фрактальных бород:) Ниже моя подборка самых шедевральных:

читать далее »

Юмор

Рекурсия — это просто и жизненно

Что такое рекурсия? В двух словах — это запуск операции из этой же операции до тех пор, пока не выполнено условие остановки.

А вот как это происходит в жизни, ну или в мультиках:

Хенк Хилл, фанат масла WD-40

Хенк Хилл, фанат масла WD-40

Возникает логичный вопрос: «А что, если вторая баночка не откроется?»

Выход прост — читать далее »

Юмор

Путин — русский фрактал!

Еще один жизненный примерчик фракталов:

Русский национальный фрактал: Путин - Медведев - Путин - Медведев - Путин...

Вот еще на ту же тему, вкратце можно описать такое явление «Обещаю обещать«:

Путин обещает обещать

Кстати, спасибо большое за отмену зимнего времени! Я, как программист, это очень оценил! Только нельзя было сразу ПОДУМАТЬ, а то еще один сдвиг моя психика не выдержит. Разработчики софта не поспевают за полетом мысли наших чиновников! Хватит уже принимать законы ни о чем, переливая из пустого в порожнее..

Дизайн

Фрактальные стулья — матрешки

Стул-матрешка, навеянный фракталамиЕще одно интересное дизайнерское решение вдохновленное фракталами, а может быть русской матрешкой.

Кликните по картинке — там стул будет показан со всех ракурсов.

Дизайн

Фракталы в природе и созданные человеком

Фото подборка встречающихся в природе или искусственно созданных фракталов. Ну или просто качественный Фотошоп. В общем, порция вдохновения для дизайнеров:

Программирование

Java программа для рисования кривых Коха

Летом 2010-го я немного углубился в тему фракталов и решил поэкспериментировать с ними в среде Java. В итоге получилась небольшая программа, основной функцией которой является рисование кривой Коха на основе заданных координат исходного отрезка в 2D плоскости и количества итераций. На какие-то научные достижения я не претендую, просто делал это для эстетического удовольствия.

В программе предусмотрены два разных алгоритма рисования кривой Коха:

  1. Алгоритм с циклом и массивом для хранения линий следующего итерационного цикла (функция drawCurveKoch, исходный код java ниже). Этот алгоритм мне пришел в голову сразу, еще до вникания в более грамотные с математической точки зрения, алгоритмы. В этом алгоритме я применил простейшие правила геометрии. Алгоритм заключается в том, что в каждом цикле к каждой текущей прямой дорисовывается треугольник по середине, а также, все 4 новые получившиеся линии сохраняются в массив. В каждой следующей итерации, то же самое происходит со всеми отрезками из массива. Цикл повторяется заданное количество раз. В итоге получается, по сути, не совсем правильная кривая Коха, а её «черновой» аналог, с «не затертой» линией середины каждого отрезка. Результат получается такой:
    Кривая Коха нарисованая алгоритмом с циклом и записью в массив
  2. Рекурсивный алгоритм (функция drawCurveKochRecur, исходный код java ниже) — рисует уже действительно только кривую, без черновых линий. Этот алгоритм использует те же математические расчеты, но его преимущество в том, что, за счет рекурсии, можно прорисовывать лишь те линии, которые представляют именно кривую. Вот результат этого алгоритма:
    Кривая Коха нарисованая рекурсивным алгоритмом

При желании и тот и другой алгоритм можно настроить на выдачу одинаковых результатов — с линиями оснований треугольников или без них.

Функции рисования кривых Коха позволяют формировать любые фигуры на основе этих кривых, какие вам только позволит фантазия. Вот несколько рисунков, исходный код каждого из которых представлен в примерах в самой программе ниже (examples):

читать далее »