FRACTALS

ѕ даРЪвРЫРе
іРЫХаХп ШЧЮСаРЦХЭШЩ даРЪвРЫЮТ
їаЮУаРЬЬл ФЫп ЯЮбваЮХЭШп даРЪвРЫЮТ
БблЫЪШ ЭР ФагУШХ бРЩвл Ю даРЪвРЫРе
ЅРЯШиШ бТЮШ ТЯХзРвЫХЭШп



 
 

LOGO
Предыдущая Следующая

292

Фракталы и вейвлеты для сжатия изображений в действц

Рис. С. 1.1.

Иерархия классов лля системы IFS. Сплошные линии указывают наследование, а пунктирные линии указывают, что этот класс используется другим классом

Следующий тип окна в IFS - окно преобразования, реализованное классом ttrf_window. Как и в случае для окна точек, есть два класса менеджера MDI (многодокументального интерфейса): topen_trf_window_manager, КОТОрЫЙ открывает предварительно сохраненный файл преобразования, и tnew_trf_window_manager. В любом случае, окно преобразования оперирует предварительно созданным файлом точек, так что каждый из этих менеджеров использует диалог открытия файла, чтобы получить имя файла точек перед созданием нового окна преобразования. Окно преобразования рисует ту же самую сетку, как и окно точек, и так же отображает точки и их метки. Оно также имеет возможность импортирования и отображения на сетке растрового изображения. Пользователь создает новое аффинное преобразование, определяя два набора из трех точек. Первый набор точек - эТ0 доменная область преобразования, а второй набор - ранговая область преобразования. Как только каждый из наборов из трех точек будет выбран, окно рисует линии, соединяющие точки в треугольник, завершая таким образом определение набора трех выбранных точек. Когда пользователь завершает

южение С. Организация прилагаемого исходного кода программ

293

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

Окно преобразования обеспечивает геометрическое описание преобразования. Однако выполнение IFS требует, чтобы каждое преобразование было представлено в терминах его аффинных коэффициентов. Окно преобразования предоставляет эти коэффициенты. Когда пользователь выбирает команду меню File ♦ Create Coeff File (Файл ♦ Создать файл коэффициентов), класс ttrf_window передает управление своей функции-члену onCreateCoef f, которая, в свою очередь, вызывает внешнюю функцию create_coeff_fiie. Эта функция вычисляет коэффициенты, используя подход, описанный в Главе 2. Вычисление включает в себя обращение матрицы 3x3, использующее функции из библиотеки матричных утилит UTM, файлы которой упомянуты ниже.


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


Галерея фракталов

 

Hosted by uCoz