В 1981 году вышла книга британского ботаника Джона Хатчинсона «Фракталы и самоподобие», в которой рассматривался новый метод преобразования изображений. В 1985 году Майкл Барнсли, ведущий исследователь компании «Georgia Tech», опубликовал работу, в которой он ввел в математику понятие системы итерируемых функций (СИФ). Преобразование образов с помощью систем итерируемых функций стало одним из наиболее замечательных и глубоких достижений в теории фракталов. С легкой руки Майкла Барнсли этот метод приобрел броское, почти рекламное обозначение. Его стали называть «игрой хаоса».
Прежде чем перейти к «игре хаоса», договоримся о понятии аффинного преобразования. Преобразования сжатия, растяжения, переноса и поворота объекта называются аффинными преобразованиями. Аффинные преобразования есть линейные преобразования в том смысле, что они могут быть представлены в виде линейной функции:
где параметр А задает аффинное преобразование, а В — перенос, или так называемую трансляцию образа.
Действие аффинного отображения на единичный квадрат ABCD
Аффинное преобразование на комплексной плоскости можно задать системой уравнений:
или матрицей:
В общем случае аффинное преобразование на плоскости определяется шестью независимыми действительными числами. Два числа е и ƒ описывают обычную трансляцию, а четыре числа а, b, с, d задают произвольное линейное преобразование при неизменном положении начала координат (0,0). Коэффициенты а, b, с, d, e, f можно считать символическим кодом некоторого аффинного преобразования. Каждая точка образа переводится посредством аффинной трансформации в новую точку на той же плоскости. Обычно преобразование образа сводится к нескольким аффинным преобразованиям, выполненным одно за другим. Коды всех преобразований можно представить в форме матрицы С:
Для примера рассмотрим треугольник Серпинского. Построение треугольника Серпинского можно описать простым геометрическим алгоритмом. Для начала из правильного треугольника удалим среднюю четверть в виде подобного ему правильного треугольника. С оставшимися тремя треугольниками повторим ту же процедуру. И так далее — с остающимися на каждом шаге треугольниками поступают аналогично.
Этот алгоритм можно формализовать с помощью трех аффинных преобразований:
Исходный блок может быть треугольником, но может иметь и любую другую форму. Форма блока не имеет значения. Пусть это будет квадрат. Преобразования ω будут смещать и уменьшать исходный квадрат:
Первые несколько итераций изображены на рисунке.
Теперь мы готовы рассмотреть «игру хаоса».