- •Министерство образования республики беларусь
- •Реферат
- •Содержание
- •Введение
- •Теоретическая часть
- •1.1 Постановка задачи
- •1.2. Математическая модель фрактала "Лист папоротника"
- •2 Практическая часть
- •2.1 Описание объектов, свойств, методов
- •2.2 Формы и основные модули текста программы в среде Delphi
- •2.3 Результаты тестирования программного продукта
- •2.4 Анализ результатов тестирования программы
- •Заключение
- •Список использованых источников
- •Листинг программы
- •Вторая форма
Теоретическая часть
1.1 Постановка задачи
Задачей курсовой работы является: построение фрактала «Лист папоротника».
Для достижения данной цели необходимо составить приложение в среде Delphi. Приложение должно строить изображение фрактала «лист папоротника» с использованием графических средств среды Delphi при помощью метода многократных итераций (повторений).
1.2. Математическая модель фрактала "Лист папоротника"
Для построения фрактала используется подход, называемый методом итерируемых функций или IFS-методом (аббревиатура IFS происходит от английских слов iterated function system). IFS-метод основан на аффинных (от лат. affinis - родственный) преобразованиях координат точек по формулам:
X=ax+by+e, (1.1)
где a,b,e–заданные коэффициенты
x,y–текущие координаты
X–вновь вычисленная координата
Y=cx+dy+f, (1.2)
где c,d,f– заданные коэффициенты
x,y – текущие координаты
Y– вновь вычисленная координата[2].
Основная идея этого метода заключается в том, чтобы, зафиксировав какую-либо начальную точку, далее циклически совершать афинное преобразование системы координат, в которой точка строится .То есть, если на определённом шаге цикла имеется точка А с координатами (х,y), то при следующей итерации цикла изображается точка В, чьи координаты имеют вид (ax+by+e, cx+dy+f). Таким образом, наблюдается явное выражение "новой" системы координат (точки В) через "старую" (точку А).
В свою очередь коэффициенты преобразования систем координат выбираются в зависимости от попадания некоторой случайной величины в соответствующий диапазон значений[3].
Алгоритм решения задачи
Для решения поставленной задачи нужно создать процедуру, вызов которой реализует создание фрактала.
А) Константа iterations отвечает за количество итераций (повторений) случайного рисования точки как мельчайшей составляющей изображения листа папоротника. Остальные переменные отвечают за размеры и координаты изображения.
Б) В теле процедуры создадим систему, которая задаст масштаб и координаты фрактала. Зададим исходные данные для итерируемой точки.
В) При помощи цикла for реализуем выполнение итераций.
Г) В теле процедуры используем случайное преобразование координаты точки. Выберем диапазоны для случайной величины (от 0 до 0.85 - соответствует преобразованию множества точек, отвечающих за "густоту" и "высоту" листа папоротника, от 0.85 до 0.92 - рисует листики слева от стебля, от 0.92 до 0.99 - рисует листики справа от стебля, остальные диапазоны - изображение стебля). Координаты точки в разных диапазонах преобразуются по формулам: X=ax+by+e, Y=cx+dy+f . Логическое выполнение программы осуществляют операторы if и else.
Выведем результат на графический компонент Image.
Блок-схема алгоритма решения задачи
Ввод начальных данных:p := random;
t := x;
for k := 1 to iterations do
if p <= 0.85
Да Нет
x := 0.84 * x -0.045 * y;
y := 0.045 * t + 0.86 * y + 1.6;
if p <= 0.92
Да Нет
x := 0.25 * x - 0.26 * y;
y := 0.23 * t + 0.25 * y + 1.6;
if p <= 0.99
Да Нет
x := -0.135 * x + 0.28 * y;
y := 0.26 * t + 0.245 * y + 0.44;
x := 0.0;
y := 0.16 * y
Б
А
В
Б
А
В
Рисунок 1.1 — блок-схема алгоритма построения фрактала