Вход

Различие алгоритмов моделирования фракталов в Maple и Delphi

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 102568
Дата создания 2016
Страниц 60
Источников 7
Мы сможем обработать ваш заказ (!) 5 июня в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
3 480руб.
КУПИТЬ

Содержание

Содержание
Введение 4
Теоретические основы понятия «Фрактальная графика» 6
1.1 Анализ понятии, связанных с фрактальной графикой 9
Размерность Хаусдорфа 10
Фрактальная размерность Минковского 10
1.2 Этапы работы над проектом 13
Глава 1. Применение фракталов в ЭВМ 14
1.1 Технологии создания программ под управлением СКМ Maple. 14
1.2 Базовые управляющие структуры Maple-языка. 16
1.2.1 Организация программных модулей и механизма процедур в Maple-языке 17
1.2.2 Средства Maple-языка для обеспечения доступа к внешним файлам данных BINARY-типа 18
1.3 Графические средства Maple. 19
1.3.1 Графическая интерпретация алгебраических выражений и уравнений в среде Maple 19
1.3.2 Двухмерное представление функциональных зависимостей и данных в среде Maple 20
1.3.3 Трехмерное представление функциональных зависимостей и данных в среде Maple 20
1.3.4 Создание графических объектов на основе базовых примитивов 20
1.4 Создание и работа с библиотеками пользователя 20
1.5 Технологии создания объектно-ориентированных проектов решения математических задач в Delphi. 20
1.6 Основы Графики в системе Delphi. 20
Глава 2 Алгоритмы и программы по теме «Фрактальная графика» 21
2.1 Тема «Введение в Фрактальную графику» (базовый понятийный аппарат. базовым понятием для фрактальной компьютерной графики являются «Фрактальный треугольник». Затем идет «Фрактальная фигура», «Фрактальный объект», «Фрактальная прямая», «Фрактальная композиция», «Объект-родитель» и «Объект наследник». Основные свойства фракталов 21
2.1.1 Тема «Классификация фракталов 22
2.1.2 Тема «Геометрические фракталы. Кривая Коха, снежинка Коха, Дракон Хартера–хейтуэяю Использование L-систем для построения «дракона. Ковер и треугольник Серпинского 23
2.1.3 Тема «Алгебраические фракталы. Построение множества Мандельброта. Построение множества Жюлиа 27
2.1.4 Тема «Стохастические фракталы. Системы итерируемых функций для построения фракталов. Сжатие изображений с использованием системы итерируемых функций. 31
Список библиографии 36

Фрагмент работы для ознакомления

Рисунок 11. – Кривая Коха, показывается процесс увеличения сегментов по мере увеличения количества разбиения
Снежинка Коха является продолжением идеи разделения прямой на равномерные отрезки для построения, но в качестве базиса берется равносторонний треугольник. Соответственно по мере увеличений количества итераций происходит увеличение количества сегментов, соответственно объект начинает больше напоминать снежинку.
Рисунок 12 – Снежинка Коха.
Рисунок 13. – Пример кривой Коха, построенной с помощью Delphi
Исходный код построения кривой Коха
procedure FractalKoch(a,b:TPoint;level:integer);
procedure Draw(b,e:TPoint);
begin
with Form1.Image1.Canvas do begin
moveto(b.x,b.y);
lineto(e.x,e.y);
end;
end;
var
c,d,e,f, e1, f1, g:TPoint;
begin
c.x:=trunc((b.x-a.x)/3+a.x);
c.y:=trunc((b.y-a.y)/3+a.y);
d.x:=trunc(b.x-(b.x-a.x)/3);
d.y:=trunc(b.y-(b.y-a.y)/3);
e1.x:=a.y;
e1.y:=b.x;
e.x:=b.y;
e.y:=a.x;
f.x:=trunc((b.x-a.x)/2+a.x);
f.y:=trunc((b.y-a.y)/2+a.y);
f1.x:=trunc(f.x+(e1.x-e.x));
f1.y:=trunc(f.y+(e1.y-e.y));
g.x:=trunc(f.x+(f1.x-f.x)/3);
g.y:=trunc(f.y+(f1.y-f.y)/3);
if Level=0 then
Draw(a,b)
else if Level=1 then
begin
Draw(a,c);
Draw(c,g);
Draw(g,d);
Draw(d,b);
end else
begin
FractalKoch(a,c,Level-1);
FractalKoch(c,g,Level-1);
FractalKoch(g,d,Level-1);
FractalKoch(d,b,Level-1);
end;
end;
Тема «Алгебраические фракталы. Построение множества Мандельброта. Построение множества Жюлиа
Множество Мандельброта, это множество точек с на комплексной плоскости, для которых справедливо рекуррентное соотношение
при z0= 0
является ограниченным. Множество Мандельброта это множество таких c, для которых существует такое действительное R, что неравенство |zn|<R выполняется при всех натуральных n;
В курсовой работе также рассмотрен данный вид фрактала. Построение его довольно простое, общий вид алгоритма предполагает выбор области построения, и его попиксельное сканирование. Далее происходит проверка точки на принадлежность фракталу Мандельброта, если точка принадлежит фракталу с заданным эпсилон ставим соответствующий цвет.
Ввиду того, что фрактал Мандельброта обладает эффектом самоподобия, сделали механизм увеличения фрактала, чтобы увидеть, что действительно малые фракталы при увеличении повторяет изображения большого фрактала.
Также сделали механизм увеличений точности, который влияет на эпсилон, с которым строится фрактал. При повышении точности скорость построения фрактала падает, поэтому в качестве исследования использовали компонент, который отображает прогресс построения графического изображения фрактала. Прогресс построения, фрактала позволяет прогнозировать примерное время построения фрактала. Но не во всех случаях, возможно, определить время построения, к примеру: в рекурсивных алгоритмах, стохастических алгоритмах. Очень сложное определение примерного времени построения в стохастических алгоритмах так как время зависит и от того какие случайные числа выпадают, соответственно алгоритм может строить за разное время.
Рисунок 14. – Фрактал множества Мандельброта , реализованный в программе Delphi.

Рисунок 15. – Фрактал множества Мандельброта, при увеличении в 700 раз и увеличении точности построения.
Исходный код построения фрактала Мандельброта
procedure TForm1.DrawMondelbrot;
const
MaxXValue = 310;
var
zi, zr, ci, cr, tmp: Extended;
i, j, k, m: Integer;
Depth: Integer;
aParametr: Extended;
begin
Depth := SpinEdit1.Value;
aParametr:= SpinEdit2.Value;
ProgressBar.Max := MaxXValue-160;
ProgressBar.Position := 0;

for i:= -160 to MaxXValue do begin
ci := i/aParametr;
ProgressBar.Position:= ProgressBar.Position+1;

for j:= -190 to 400 do begin
cr := j/aParametr;
zi := 0.0;
zr := 0.0;
for k:=0 to DEPTH do begin
tmp := zr*zr - zi*zi;
zi := 2*zr*zi + ci;
zr := tmp + cr;
if (zr*zr + zi*zi > 1.0E16) then begin
break; end;
end;
if (k < DEPTH) then begin
m := k mod 255 + 1;
Image1.Canvas.Pixels[i + 160, j + 190] := RGB(m*15, 40 , m*15);
end;
end;
end;
ProgressBar.Position := 0;
end;

Тема «Стохастические фракталы. Системы итерируемых функций для построения фракталов. Сжатие изображений с использованием системы итерируемых функций.
Стохастические фракталы представляют собой алгоритмы, использующие в своих вычислениях генератор случайных чисел. Генератор случайных чисел позволяет программе создавать каждый раз новые изображения фрактала. Как правило, такие алгоритмы востребованы там, где требуется получить множество различных геометрических объектов. Главной проблемой создания таких фракталов является определение предела, в которых может меняется значения управляющих параметров. Основное применение находит в трехмерной графике. В начале 90 годов художники для создания в электронно-вычислительных машинах изображении природы тратили много времени, в силу того что для создания в одном из известных пакетов трехмерной графики 3d Max и Maya необходимы определенные навыки и процесс создания является очень длительной процедурой. И примерно в это время задумались о том, что деревья, растительность представляет собой фрактальный объект. Но в отличии от двухмерного случая, требовалось разработать алгоритмы которые могли бы строить трехмерные березы, елки и другие деревья. Соответственно, для создания объектов, требуется только указать количество итерации, от которой будет зависеть количество веток, листьев нашего дерева. В тоже время, если алгоритм будет вычислять по одному и тому же пути, будет «производится» одно и тоже дерево. Поэтому при создании объекта используется генератор случайных чисел, который добавляет случайный поворот ствола, ветки, листочка. Поэтому созданные с помощью такого алгоритма деревья становятся разными. Можно даже сказать вероятность получения одинаковых деревьев будет ничтожна мала. Поэтому такие алгоритмы называют стохастическими, то есть случайными.
В нашей курсовой работе также применяются стохастические алгоритмы для следующих задач – это задача построения дерева посредством фрактала и построение фрактала Лейс. Правда фрактал Лейс получился слабо изменяемым в силу видимо неправильно подобранных параметров, при которых изменения фрактала были бы сильно заметны невооруженным глазом.
Рисунок 16. – Стохастический алгоритм построения дерева, в алгоритме меняется цвет листьев, и количество итерации влияющее на сложность построения дерева
Рисунок 17. – Фрактальное дерево, при большем количестве итераций.
Программа построения фрактального дерева:
procedure TForm1.DrawTree(x, y, l: Integer; a: Real);
var
x1, y1, p, s, i : Integer;
a1 : Real;
begin
if l>VolumeValue then
begin
x1 := trunc(x + l*cos(a));
y1 := trunc(y + l*sin(a));
if l > 100 then
p:=100
else p:=l;
if p > 50 then
begin
for i:=0 to (p div 10) do begin
Image1.Canvas.Pen.Color:= aStvolColorSelect;
Image1.Canvas.Polygon([Point(x+i-(p div 20), y),Point( x1, y1)]);
end;
end
else
begin
if Random > 0.5 then
Image1.Canvas.Pen.Color:= aListColorSelect
else Image1.Canvas.Pen.Color:=clolive;
for i:=0 To 3 do
Image1.Canvas.Polygon([Point(x+i, y),Point( x1, y1)]) ;
end;
for i:=0 to 10-Random(10) do begin
s := Random(l-l div 5) + (l div 5);
a1:= a + pi/2*(0.5-Random);
x1:= trunc(x + s*cos(a));
y1:= trunc(y + s*sin(a));
DrawTree(x1, y1,p-10-Random(10), a1);
end;
end;
end;
Для построения фрактала, используется рекурсивная фрактальная формула, которая при увлечении числа итерации, будет строить все более объемное дерево.
Рисунок 18. – Стохастический фрактал Лейс.
Фрактал Лейс строится по следящему правилу: используется случайный параметр в диапазоне 0 до 1. Если коэффициент меньше 0.25 то вычисляется по формуле: где Angle – угол, P - управляющий параметр, являющийся радиусом разброса фрактального изображения.
Angle= arctg(xn-1, yn); x(n+1)= - P *cos(Angle)/2+1; y(n+1)= - P *sin(Angle)/2;
При значении случайного коэффициента меньше 0.5 , то правило построения меняется:
Angle= arctg(xn +1/2, yn -sqrt(3)/2); x(n+1):= -P*cos(Angle)/2-1/2; y(n+1):=-P*sin(Angle)/2+sqrt(3)/2;
При значении случайного коэффициента меньше 0.75 , то правило построения меняется:
w= Arctg(x+1/2, y+sqrt(3)/2); Y1=-P *cos(Angle)/2-1/2; X1=-P *sin(Angle)/2-sqrt(3)/2;
Согласно теории указанные в книгах по компьютерной графике можно встретить красивые изображения фрактала Лейс, но для получения таких же изображении необходимо хорошо знать при каких параметрах получаются данные изображения. Возможно авторы, используют также модифицированные алгоритмы, а не только формулы, по которым показываются примеры данных фракталов.
Список библиографии
Архангельский А.Я. Программирование в Delphi 7. - М.: ООО "Бином-Пресс", 2005 г.
Шабетник В. Д. Фрактальная физика: наука о  мироздании. - М., 2000. - 415 с.
Ильяшенко Ю. С. Аттракторы и их фрактальная размерность. - М.: МЦНМО, 2005. - 16 с.
Автоволновые процессы в нелинейных сре­дах с диффузией / Е. Ф. Мищенко, В. А. Садовничий, А. Ю. Колесов и др. - М.: ФИЗМАТЛИТ, 2005. - 432 с.
P. M. Кроновер. Фракталы и хаос в динамических системах. Основы теории. М., 2000. — 352 с.
Визуализация трехмерных фракталов средствами GPU Бакалаврская работа А.В.Жаренова, 2013 г.
О.В. Чумак ЭНТРОПИИ И ФРАКТАЛЫ В АНАЛИЗЕ ДАННЫХ 2011 г.Ижевск
41

Список литературы [ всего 7]


Список библиографии
1. Архангельский А.Я. Программирование в Delphi 7. - М.: ООО "Бином-Пресс", 2005 г.
2. Шабетник В. Д. Фрактальная физика: наука о мироздании. - М., 2000. - 415 с.
3. Ильяшенко Ю. С. Аттракторы и их фрактальная размерность. - М.: МЦНМО, 2005. - 16 с.
4. Автоволновые процессы в нелинейных сре­дах с диффузией / Е. Ф. Мищенко, В. А. Садовничий, А. Ю. Колесов и др. - М.: ФИЗМАТЛИТ, 2005. - 432 с.
5. P. M. Кроновер. Фракталы и хаос в динамических системах. Основы теории. М., 2000. — 352 с.
6. Визуализация трехмерных фракталов средствами GPU Бакалаврская работа А.В.Жаренова, 2013 г.
7. О.В. Чумак ЭНТРОПИИ И ФРАКТАЛЫ В АНАЛИЗЕ ДАННЫХ 2011 г.Ижевск
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.0048
© Рефератбанк, 2002 - 2024