Генерирование фракталов

Автор работы: Пользователь скрыл имя, 07 Июня 2013 в 00:06, курсовая работа

Краткое описание

Разветвления трубочек трахей, листья на деревьях, вены в руке, река, бурлящая и изгибающаяся, рынок ценных бумаг - это все фракталы. От представителей древних цивилизаций до Майкла Джексона, ученые, математики и артисты, как и все остальные обитатели этой планеты, были зачарованы фракталами и применяли из в своей работе.
Программисты и специалисты в области компьютерной техники так же без ума от фракталов, так как фракталы бесконечной сложности и красоты могут быть сгенерированы простыми формулами на простых домашних компьютерах. Открытие фракталов было открытием новой эстетики искусства, науки и математики, а так же революцией в человеческом восприятии мира.

Содержание

Введение_________________________________________________________3
Постановка задачи и описание_______________________________________4
1.Понятие фрактал_________________________________________________5
2. Применение фракталов___________________________________________6
2.1Компьютерные системы_____________________________________6
2.2Механика жидкостей_______________________________________ 6
2.3 Телекоммуникации_________________________________________7
2.4 Физика поверхностей_______________________________________7
2.5Медицина ________________________________________________7
2.6 Биология_________________________________________________7
3. Множество Мандельброта_________________________________________8
4.Фрактальное дерево______________________________________________11
5.Код программы на Delphi_________________________________________13
Заключение______________________________________________________20
Список литературы_______________________________________________21

Прикрепленные файлы: 1 файл

Kursovaya.docx

— 342.16 Кб (Скачать документ)

Курсовая работа : Генерирование фракталов

 

СОДЕРЖАНИЕ

Введение_________________________________________________________3

Постановка  задачи и описание_______________________________________4

1.Понятие  фрактал_________________________________________________5

2. Применение  фракталов___________________________________________6

2.1Компьютерные  системы_____________________________________6

2.2Механика  жидкостей_______________________________________ 6

2.3 Телекоммуникации_________________________________________7

2.4 Физика  поверхностей_______________________________________7

2.5Медицина ________________________________________________7

2.6 Биология_________________________________________________7

3. Множество  Мандельброта_________________________________________8

4.Фрактальное  дерево______________________________________________11

5.Код программы  на Delphi_________________________________________13

Заключение______________________________________________________20

Список литературы_______________________________________________21

Приложения_____________________________________________________21

 

 

 

 

 

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

 

Разветвления  трубочек трахей, листья на деревьях, вены в руке, река, бурлящая и изгибающаяся, рынок ценных бумаг - это все фракталы. От представителей древних цивилизаций  до Майкла Джексона, ученые, математики и артисты, как и все остальные  обитатели этой планеты, были зачарованы фракталами и применяли из в своей работе.

Программисты  и специалисты в области компьютерной техники так же без ума от фракталов, так как фракталы бесконечной  сложности и красоты могут  быть сгенерированы простыми формулами  на простых домашних компьютерах. Открытие фракталов было открытием новой  эстетики искусства, науки и математики, а так же революцией в человеческом восприятии мира.

 

 

 

ПОСТАНОВКА  ЗАДАЧИ И ОПИСАНИЕ.

Цель курсовой работы разработать программу, генерирующую один из видов фракталов с помощью приложения Delphi. Программа должна работать следующим образом:

1) При открытии  программы должна открываться  главная форма

2) Пользователь  вводит данные 

3) Программа  обрабатывает данные, если данные  введены не верно то программа выдает пользователю сообщение об ошибке. Если же ошибки нет то программа прорисовывает фрактал.

4) При нажатии  на кнопку закрыть программа  закрывается.

 

1.ПОНЯТИЕ  «ФРАКТАЛ»

Понятия фрактал и фрактальная геометрия, появившиеся в конце 70-х, с середины 80-х прочно вошли в обиход математиков  и программистов. Слово фрактал  образовано от латинского fractus и в переводе означает состоящий из фрагментов. Оно было предложено Бенуа Мандельбротом в 1975 году для обозначения нерегулярных, но самоподобных структур, которыми он занимался. Рождение фрактальной геометрии принято связывать с выходом в 1977 году книги Мандельброта `The Fractal Geometry of Nature. В его работах использованы научные результаты других ученых, работавших в период 1875-1925 годов в той же области (Пуанкаре, Фату, Жюлиа, Кантор, Хаусдорф). Но только в наше время удалось объединить их работы в единую систему.

Роль  фракталов в машинной графике  сегодня достаточно велика. Они приходят на помощь, например, когда требуется, с помощью нескольких коэффициентов, задать линии и поверхности очень  сложной формы. С точки зрения машинной графики, фрактальная геометрия  незаменима при генерации искусственных  облаков, гор, поверхности моря. Фактически найден способ легкого представления  сложных неевклидовых объектов, образы которых весьма похожи на природные.

Одним из основных свойств фракталов является самоподобие. В самом простом случае небольшая часть фрактала содержит информацию о всем фрактале.

Фракталы  находят все большее и большее  применение в науке. Основная причина  этого заключается в том, что  они описывают реальный мир иногда даже лучше, чем традиционная физика или математика[1].

 

2.ПРИМЕНЕНИЕ ФРАКТАЛОВ

 

2.1Компьютерные системы

Наиболее  полезным использованием фракталов  в компьютерной науке является фрактальное  сжатие данных. В основе этого вида сжатия лежит тот факт, что реальный мир хорошо описывается фрактальной  геометрией. При этом, картинки сжимаются гораздо лучше, чем это делается обычными методами (такими как jpeg или gif). Другое преимущество фрактального сжатия в том, что при увеличении картинки, не наблюдается эффекта пикселизации (увеличения размеров точек до размеров, искажающих изображение). При фрактальном же сжатии, после увеличения, картинка часто выглядит даже лучше, чем до него.

 

2.2Механика жидкостей

Изучение  турбулентности в потоках очень  хорошо подстраивается под фракталы. Турбулентные потоки хаотичны и поэтому  их сложно точно смоделировать. И здесь помогает переход к из фрактальному представлению, что сильно облегчает работу инженерам и физикам, позволяя им лучше понять динамику сложных

Изучение  турбулентности в потоках очень  хорошо подстраивается под фракталы. Турбулентные потоки хаотичны и поэтому  их сложно точно смоделировать. И здесь помогает переход к из фрактальному представлению, что сильно облегчает работу инженерам и физикам, позволяя им лучше понять динамику сложных потоков.

При помощи фракталов также можно смоделировать  языки пламени.

Пористые  материалы хорошо представляются в фрактальной форме в связи с тем, что они имеют очень сложную геометрию. Это используется в нефтяной науке.

 

 

2.3Телекоммуникации

Для передачи данных на расстояния используются антенны, имеющие фрактальные формы, что  сильно уменьшает их размеры и  вес.

 

2.4Физика поверхностей

Фракталы  используются для описания кривизны поверхностей. Неровная поверхность  характеризуется комбинацией из двух разных фракталов.

2.5Медицина

1. Биосенсорные взаимодействия

2. Биения  сердца

2.6 Биология

Моделирование хаотических процессов, в частности при описании моделей популяций[2].

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.МНОЖЕСТВО МАНДЕЛЬБРОТА

Мандельброт исследовал предельное (при k→∞) поведение последовательности комплексных чисел

zk+1=z2k+c; k=0,1,2…; z0=c

при различных  значениях комплексных чисел  с. Вместо арифметических операций с комплексными числами можно моделировать на плоскости ху движение точек zk = [xk уk], задаваемое двумя рекуррентными уравнениями координат:

xk+1=x2k-y2k+cx; yk+1=2xkyk+cy; k=0,1,2…; x0=cx; y0=cy

Последовательность  zk с ростом числа итераций демонстрирует повеление двух типов (рис. 3.62) в зависимости от выбора начальной точки с=[cx cy]. Ee элементы, эволюционируя по плоскости, либо постепенно уходят в бесконечность, либо всегда остаются в определенной замкнутой области, совершая циклическое движение или сходясь в точку . Математиками строго доказано, что если при некотором k модуль |zk|>rmin, где rmin=2—минимальный радиус расходимости множества Мандельброта, то далее последовательность расходится.

Множество точек с, для которых последовательность

zk+1=z2k+c; k=0,1,2…; z0=c

не расходится, называется множеством Мандельброта. Весьма сложно доказывается , что это множество связно.

Графическая интерпретация множества Мандельброта удивительно красива и бесконечно разнообразна. Для ее получения зададим исходные 
данные итерационного процесса :

  • прямоугольное окно С с разрешением mxn точек;
  • значение rmin = 2;
  • максимальное число итераций kmax.

Условимся, что если точка zk вышла за пределы круга радиуса rmin, то расходимость достигнута за k<kmax итераций и процесс останавливается.

Для каждой точки 

сij є C i=1..m, j=`1..n

запустим  итерационный процесс и сформируем матрицу М, элемент которой mij є [1, kmax] равен номеру итерации к, на которой процесс был остановлен. Далее возможны варианты изображения фрактального множества на плоскости или в пространстве.

В плоском  варианте визуализации выведем матрицу М на экран как растр, сопоставив элементам mij, некоторую палитру из kmax цветов. Например, можно выбрать радужную палитру, у которой цвета и оттенки от фиолетового до красного (или градации серого цвета) распределены по диапазону чисел матрицы либо линейно (чем быстрее расходится последовательность в некоторой точке сij, тем темнее ее цвет), либо по другому закону. Яркие изображения дают палитры с чередующимися контрастными цветами.

Полагая числа mij высотами некоторой поверхности в точках сij, можно по- строить объемное изображение множества Мандельброта или его части, которое при специально подобранном освещении может выглядеть и как скала с плоской вершиной , и как водопад, и как горная пещера[3, С.348-350].

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.ФРАКТАЛЬНОЕ  ДЕРЕВО

Фигуры  и формы, о которых пойдет речь в этой главе, заинтересовали еще  древних греков. Пифагор доказал  свою знаменитую теорему, построив фигуру, в которой на сторонах прямоугольного треугольника расположены квадраты. В наш век эта фигура Пифагора выросла в «дерево». Внимание Архимеда привлекли спирали: он даже написал  о них трактат. Один из видов спиралей носит его имя. Спирали являются строительными блоками живого мира. Ядро клетки состоит из двойной спиральной структуры - ДНК. содержащей в себе генетический код формирующегося организма. Иногда и сами организмы имеют спиральную структуру, например, улитки.

В неживой  природе примером спиральной структуры  может служить спиральная галактика.

Впервые дерево Пифагора построил А. Е. Босман в 1891 - во время второй мировой войны, используя для этого обычную чертежную линейку.

Пример Пифагорова дерева дан на рисунке {р - 12). Если мы пронумеруем квадраты, то обнаружим, что квадрат с индексом n «держит на себе» равнобедренный треугольник, от которого произрастают два более мелких квадрата. Квадраты слева имеют индекс 2n, справа - (2л+1). Вместе прямоугольный треугольник, два квадрата на его катетах и квадрат на гипотенузе дают геометрическое представление теоремы Пифагора. Пели площадь первоначального квадрата равна единице, то общая площадь квадратов 2 и 3 также будет единица. То же самое получим для каждого следующего уровня. Тогда квадраты с номерами 8. 9, 10. 11, 12, 13, 14, 15 имеют общую площадь ту же, что и основной квадрат.

Можно упростить  дерево Пифагора, отбросив квадраты и рисуя только отрезки, которые соединяют «центры» треугольников. Сами треугольники не рисуются. В результате получим обнаженное дерево[4, C.45-48].

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.КОД ПРОГРАММЫ НА DELPHI

unit Unit1;

interface

uses

   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

   Dialogs, StdCtrls, math, Buttons;

type

   TForm1 = class(TForm)

     Button1: TButton;

     Edit3: TEdit;

     Edit4: TEdit;

     Edit6: TEdit;

     Label3: TLabel;

     Label4: TLabel;

     Label6: TLabel;

     BitBtn1: TBitBtn;

     Label1: TLabel;

     procedure Button1Click(Sender: TObject);

private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

procedure fract(x,y,a,l,k,a1:integer);

var

   p:integer;

begin

   p := a1;

   if k mod 2 = 0 then

     p := -a1;

   while l > 3 do

    begin

      with form1.Canvas do

       begin

          pen.Width := 6-k;

          pen.Color := rgb(random(255),random(255),random(255));

          moveto(x,y);

          lineto(x+round(cos(degtorad(a))*l),y+round(sin(degtorad(a))*l));

          x := x+round(cos(degtorad(a))*l);

          y := y+round(sin(degtorad(a))*l);

          a := a + p;

          l := round(l / 1.17);

          fract(x,y,a-(p*2),round(l / 1.2),k+1,a1+1);

       end;

    end;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

Var q, w, e, r, t, u :Integer;

begin

q:=600;

w:=500;

e:=StrToInt(Edit3.Text);

r:=StrToInt(Edit4.Text);

t:=0;

u:=StrToInt(Edit6.Text);

fract(q,w,e,r,t,u);

end;

end.

unit Unit1;

interface

uses

   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

   StdCtrls, ExtCtrls, Buttons;

type

   TForm1 = class(TForm)

     Panel1: TPanel;

     Image1: TImage;

     BitBtn1: TBitBtn;

     BitBtn2: TBitBtn;

     Edit1: TEdit;

     Edit2: TEdit;

     Edit3: TEdit;

     Label1: TLabel;

     Label2: TLabel;

     Label3: TLabel;

     procedure BitBtn1Click(Sender: TObject);

Информация о работе Генерирование фракталов