- •Аннотация
- •Оглавление
- •1 Постановка задачи
- •2 Введение
- •3 Алгоритмы построения фракталов
- •3.1 Кривая Коха
- •Построение:
- •Свойства:
- •3.2 Кривая дракона
- •Построение
- •3.3 Множество Кантора
- •Построение
- •Свойства
- •3.4 Ковер Серпинского
- •Построение
- •Свойства
- •3.5 Дерево Пифагора
- •Построение
- •Свойства
- •4.5 Описание структурных элементов программы
- •4.5.1 Основная форма
- •4.5.2 Дочерняя форма
- •4.6 Инструкция пользователю
- •4.7 Описание интерфейса
- •5 Заключение
- •6 Список литературы
- •7 Приложение
Свойства
• Ковер Серпинского имеет промежуточную Хаусдорфову размерность
Рисунок 4. Ковер Серпинского на 6 итерации
3.5 Дерево Пифагора
Дерево Пифагора – разновидность фрактала, основанная на фигуре, известной как «Пифагоровы штаны».
Построение
Строим квадрат (корень дерева). На верхней стороне квадрата строится прямоугольный треугольник так, чтобы сторона квадрата являлась гипотенузой треугольника. Далее на двух других сторонах треугольника достраиваем квадраты. Получили фигуру «Пифагоровы штаны». Повторяем процедуру для квадратов, построенных на катетах треугольника принимая их за корень «поддерева». Продолжая повторение бесконечное количество раз, получим Дерево Пифагора.
Свойства
• Если в классическом дереве Пифагора угол равен 45 градусам, то также можно построить и обобщённое дерево Пифагора при использовании других углов. Такое дерево часто называют обдуваемое ветром дерево Пифагора.
• Если изображать только отрезки, соединяющие каким-либо образом выбранные «центры» треугольников, то получается обнаженное дерево Пифагора.
Рисунок 5. Классическое Дерево Пифагора на 9 итерации
Рисунок 6. Обдуваемое ветром Дерево Пифагора на 21 итерации
Рисунок 7. Обнаженное Дерево Пифагора на 12 итерации
3.6 Круговой фрактал
Круговой фрактал – фрактал, построенный путём многократного вписывания в окружность других окружностей меньшего радиуса.
Построение
В окружность радиуса вписывают семь окружностей радиуса таким образом, чтобы они все касались друг друга, но не пересекались. В каждую из этих семи окружностей вписывают семь окружностей радиуса и т.д.
Рисунок 8. Круговой фрактал на 4 итерации
4 Описание программного продукта
4.1 Программно-аппаратные требования
Продукт тестировался на следующих конфигурациях:
CPU: Intel Atom 450 1GHz
RAM: 2GB
OS: Windows 8 Developer Preview x86
CPU: AMD Phenom II X3 3.2GHz
RAM: 4GB
OS: Windows 7 Professional x64
Единственным минимальным требованием к аппаратному обеспечению является разрешение экрана: более, чем 1024x600 px для вписывания канвы в экран.
4.2 Язык или среда программирования
Продукт выполнен на языке программирования C++ с использованием среды разработки CodeGear C++ Builder 2009 и библиотеки оконных приложений VCL.,
4.3 Входные и выходные данные
Входными данными в программу являются:
• Тип фрактала для синтеза
• Координаты точек, необходимых для начала синтеза изображения
• Глубина фрактала
Выходными данными являются:
• Синтезированный фрактал на дочернем окне-канве программы
• Изображение в формате *.BMP
4.4 Структура программы
Программа состоит из двух основных частей – окон Основного и Канвы. Оба являются объектами класса TForm библиотеки VCL. Кроме того, основная форма располагает на себе кнопки – TButton, поля текстового ввода TEdit, выпадающее меню TComboBox, и подписи с подсказками – объекты класса TLabel. Дочерняя форма содержит главное меню (TMainMenu), объект класса TSaveDialog, предназначенный для инициализации окна сохранения файла, и объект класса TImage который использовался для рисования изображений.
Кроме всего перечисленного в логике основной формы, где и происходит вычисление всех координат для рисования, используются функции и структуры данных из библиотеки STL языка С++. Список использованных дополнительных библиотек:
• algorithm
• math.h