Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа.docx
Скачиваний:
29
Добавлен:
04.03.2016
Размер:
519.06 Кб
Скачать
  1. Теоретическая часть

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].

    1. Алгоритм решения задачи

  1. Для решения поставленной задачи нужно создать процедуру, вызов которой реализует создание фрактала.

А) Константа iterations отвечает за количество итераций (повторений) случайного рисования точки как мельчайшей составляющей изображения листа папоротника. Остальные переменные отвечают за размеры и координаты изображения.

Б) В теле процедуры создадим систему, которая задаст масштаб и координаты фрактала. Зададим исходные данные для итерируемой точки.

В) При помощи цикла for реализуем выполнение итераций.

Г) В теле процедуры используем случайное преобразование координаты точки. Выберем диапазоны для случайной величины (от 0 до 0.85 - соответствует преобразованию множества точек, отвечающих за "густоту" и "высоту" листа папоротника, от 0.85 до 0.92 - рисует листики слева от стебля, от 0.92 до 0.99 - рисует листики справа от стебля, остальные диапазоны - изображение стебля). Координаты точки в разных диапазонах преобразуются по формулам: X=ax+by+e, Y=cx+dy+f . Логическое выполнение программы осуществляют операторы if и else.

  1. Выведем результат на графический компонент Image.

    1. Блок-схема алгоритма решения задачи

На рисунке 1.1 приведена блок-схема алгоритма построения фрактала «Лист папоротника».

Ввод начальных данных: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 — блок-схема алгоритма построения фрактала