Система итерируемых функций (IFS) - это набор аффинных преобразований, который может быть использован при создании сложных изображений. При «Игре в Хаос» (Chaos Game) можно генерировать «странный аттрактор» («stränge attractor») данной IFS посредством простого процесса: многократно повторяемого случайного выбора аффинных отображений и преобразования отдельной точки. Этот процесс можно обратить: путем анализа заданного изображения может быть получена система IFS, для которого это изображение является аттрактором. Поскольку запись представления системы IFS занимает во много раз меньше места, чем сохранение всего изображения, этот подход вызвал огромный интерес в области сжатия изображений.

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

9.10. Тематические задания Тематическое задание 9.1. Рисование по генерации строк Уровень сложности И.

Создайте и протестируйте приложение, рисующее кривые на базе генерации строк (string production), которая рассматривалась в разделе 9.3. Созданное вами приложение должно быть способно нарисовать любую из кривых, перечисленных в примере 9.3.1, для различных порядков. После этого проверьте свою программу на строковых инструкциях Херба Сэвиджа (Herb Savage), предназначенных для создания набора апериодических мозаик Пенроуза (Penrose aperiodic tiles), описание которых приводится ниже (см. тематическое задание 9.7; вышеупомянутые инструкции получены из программы FRACINT, доступной в Интернете [Fractint, 66]):


⇐ Предыдущая| |Следующая ⇒