Практическое использование фракталов в программировании

Фракталы всегда были для меня загадкой.

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


person Sami    schedule 15.01.2010    source источник


Ответы (8)


Абсолютно компьютерная графика. Речь идет не о создании красивых абстрактных изображений, а о реалистичных и не повторяющихся пейзажах. Прочтите о фрактальных пейзажах.

Perlin Noise, который можно рассматривать как простой фрактал, используется в компьютерной графике повсеместно. Автор шутил, что если бы он запатентовал ее, то теперь стал бы миллионером. Фракталы также используются в анимации и с потерями сжатие изображений.

person Kornel Kisielewicz    schedule 15.01.2010
comment
Другой пример фракталов, используемых в компьютерной графике, - создание реалистично выглядящих растений: en.wikipedia.org/wiki / L-система - person Sami; 16.01.2010

Кривая Пеано - это фрактал, заполняющий пространство, который позволяет вам равномерно покрыть двумерную область (или область более высокого измерения) одномерным путем. Если вы выполняете локальные операции с многомерным массивом, хранение и / или доступ к данным массива в порядке заполнения пространства кривой может повысить согласованность вашего кеша для всех уровней кеширования.

person comingstorm    schedule 16.01.2010
comment
Кривая Гильберта - еще один пример этого. См. Мой пост для практической реализации: blog.notdot.net/2009/11/ - person Nick Johnson; 16.01.2010
comment
Если я правильно помню, «swizzled» формат текстуры Sega Dreamcast использовал это, чтобы получить более высокую частоту попаданий в кеш на их архитектуре рендеринга тайлов. - person matja; 12.03.2010

Фрактальное сжатие изображений. Есть еще несколько приложений, о которых думают не все в программировании, здесь.

person Noufal Ibrahim    schedule 16.01.2010
comment
Есть ли у вас какие-либо конкретные примеры алгоритмов сжатия фрактальных изображений, о которых людям было бы полезно знать? - person Sami; 16.01.2010
comment
Я не боюсь. Я познакомился с алгоритмами около десяти лет назад, но ралли не успевало. - person Noufal Ibrahim; 17.01.2010
comment
Это потому, что кодировщики фрактальных изображений просто не получили успеха по сравнению с кодировщиками преобразований. - person Steve Tjoa; 18.01.2010

Распространение ошибки по кривой Гильберта.

Идея проста - предположим, что вы конвертируете изображение в черно-белое растровое изображение 0-1. Преобразование пикселя яркости 55% в белый дает ошибку + 45%. Вместо того, чтобы просто забыть об этом, вы оставляете 45%, которые нужно учесть при обработке следующего пикселя. Допустим, его значение составляет 80%. Обычно он преобразуется в белый, но соседний пиксель слишком яркий, поэтому, принимая во внимание ошибку + 45%, вы конвертируете его в черный (80% -45% = 35%), сохраняя ошибку -35%. распространяться на следующие пиксели.

Таким образом, 75% -ная серая область будет иметь соотношение белого / черного пикселей, близкое к 75/25, что хорошо. Но если вы обрабатываете пиксели слева направо, ошибка распространяется только в одном направлении, что приводит к ухудшению внешнего вида изображений. Введите кривые заполнения пространства. Обработка пикселей по кривой Гильберта позволяет получить хорошую локализацию разброса ошибок. Подробнее здесь с изображениями.

person Rafał Dowgird    schedule 16.01.2010


Еще одно применение теории фракталов - интерполяция фрактальных изображений. Например, Perfect Resize 7 использует фракталы для изменения размера изображений с очень хорошим качеством. Скорее всего, они используют системы повторяющихся функций разделения (PIFS), которые предполагают, что разные части изображения самоподобны друг другу. Алгоритм основан на поиске самоподобных частей изображения и описании трансформации между ними.

person Marcin    schedule 20.01.2011

Используемый при сжатии изображений, любой мобильный телефон, конструкция антенного чипа представляет собой фрактал для максимальной площади поверхности, генерации текстуры, генерации гор, понимания деревьев, скал, медуз, имитации любых природных явлений, где есть степень рекурсии и самоподобия в разных напольные весы. множество научных приложений.

person DeltaEnfieldWaid    schedule 04.11.2013

Можно использовать алгоритмы информатики для вычисления фрактальной размерности или измерения Хаусдорфа черно-белых изображений. Реализовать это не так уж и сложно.

Оказывается, это используется в биологии и медицине для анализа образцов клеток, например, проанализируйте, насколько агрессивна раковая клетка или как далеко зашла болезнь. Клетка в целом более здорова, чем выше размерность, а это означает, что вы хотите иметь низкую фрактальную размерность для образцов рака.

person Per Alexandersson    schedule 20.02.2018