Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
report.docx
Скачиваний:
19
Добавлен:
27.11.2018
Размер:
599.11 Кб
Скачать

4.5 Описание структурных элементов программы

4.5.1 Основная форма

Основная форма и логика вычисления координат для рисования фракталов описаны в следующих файлах:

• Unit1.dfm

• Unit1.h

• Unit1.cpp

Файл Unit1.dfm представляет из себя структурированное описание свойств формы и ее элементов таких как физические характеристики (размеры, расположение), значения по умолчанию и др.

Файл Unit1.h содержит описание класса TMainForm, который наследуется от абстрактного класса TForm, а так же его полей и методов. Наша основная форма является объектом этого класса.

Файл Unit1.cpp содержит логику методов класса TMainForm, а именно:

void pithagorasTree(point p1, point p2, double angle,int level);

void cantorSet(point a, point b, int level);

void kochCurve(point p1, point p2, double angle, int level);

void dragonCurve(point a, point b, int level);

void rounds(point p, int size, int level);

void sierpinskiCarpet(point a, double size, int level);

void canvasStatus(int type);

bool validate(int type);

Методы с названиями соответствующие названиями фракталов отвечают за логику вычисления координат для рисования фрактала на очереднеой итерации.

Метод canvasStatus используется для своевременного отображения процесса рисования на канве в случае если процесс занимает продолжительное время.

Метод validate разбирает введенные данные и проверяет их на корректность.

Кроме того в файле описаны дополнительные структуры данных, использованные в проекте (struct point), и вспомогательные функции, используемые основными методами рисования, как, например, функция вычисления координат крайних точек отрезка после поворота вокруг одной из них (getNewCoord).

4.5.2 Дочерняя форма

Дочерняя форма описана в файлах

• Unit2.dfm

• Unit2.h

• Unit2.cpp

Структура файлов такая же, как и у Основной формы. Файл Unit2.dfm описывает свойства формы и ее элементов, файл Unit2.h описывает класс TCanvasForm, наследуемый от класса TForm, а файл Unit2.cpp описывает единственный метод этого класса TCanvasForm::N2Click, который обеспечивает вызов диалог сохранения файла и записывает содержимое канвы с указанный пользователем файл.

4.6 Инструкция пользователю

В этом разделе будут указаны общие правила работы и рекомендуемые входные данные для корректного отображения фракталов.

Для всех фракталов обязательно:

1) Все поля ввода должны быть заполнены целыми неотрицательными числами. Иначе пользователь увидит уведомление с просьбой проверить данные.

2) Координаты считаются согласно Декартовой системе координат (из левого нижнего угла).

Далее будут перечислены опциональные требования (советы), которые необязательны к выполнению и приведены здесь только для удобства пользователя (за исключением помеченных):

• Для «Множества Кантора»:

1) Точки расположены на большом расстоянии от оси (иначе изображение фрактала «уедет» за ось и не будет видно).

2) Координаты обеих точек должны быть одинаковыми (обязательно).

3) Ставить глубину больше 7 нецелесообразно, так как толщина линии получается меньше допустимого компьютером размера (1px) и рисование не производится.

• Для Кривой дракона:

1) Начальные точки расположены ближе к центру на небольшом удалении друг от друга (не более 200px), иначе кривая может «уехать» за границы канвы.

2) Глубину фрактала выставлять ≤15, иначе построение может занять много времени.

• Для «Кривой Коха»

  1. Точки желательно располагать на большом расстоянии друг от друга, но на минимальном удалении от оси , которое больше нуля.

2) Координаты обеих точек должны быть одинаковыми (обязательно).

• Для «Дерева Пифагора»:

1) Корень дерева должен быть расположен параллельно оси (координаты нижних точек корня одинаковы – обязательно).

2) Корень дерева должен располагаться близко к оси , иначе есть вероятность, что ветви и листья «выплывут» за границы канвы.

3) Размер стороны корня (разница между координатами ) ≤ 150.

• Для «Кругового фрактала»:

1) Уместить основную окружность в границы канвы.

2) Глубину устанавливать ≤4 для скорости рисования.

• Для «Ковра Серпинского»:

1) Выбрать в качестве координаты верхнего левого угла центрального прямоугольника точку, смещенную от центра в направлении северо-запада (), размер стороны указывать не более высоты канвы (во избежание «выползания» ковра за границы).

2) Глубину желательно устанавливать ≤3 для скорости работы.

После заполнения формы нужно нажать кнопку «Draw It!». После этого справа от основной формы появится форма канвы с отрисованным фракталом (Рисунок 12).

Для того чтобы сохранить сгенерированное изображение, нужно на канве выбрать в главном меню пункт Image→Save, указать имя файла и путь его сохранения, нажать кнопку «Сохранить»/«Save». Файл сохранится с указанным именем в формате *.BMP.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]