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

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    738,94 Кб
  • Опубликовано:
    2013-06-09
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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














Курсовая работа

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

ВВЕДЕНИЕ

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

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

 

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

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

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

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

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

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

 

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


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

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

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

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

 

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


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

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

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

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

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

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

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

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

.5 Медицина

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

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

.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, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, math, Buttons;

TForm1 = class(TForm)

Button1: TButton;

Edit3: TEdit;: TEdit;: TEdit;: TLabel;

Label4: TLabel;: TLabel;: TBitBtn;: TLabel;

procedure Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;

{$R *.dfm}fract(x,y,a,l,k,a1:integer);:integer;:= a1;k mod 2 = 0 then:= -a1;

while l > 3 do

with form1.Canvas do.Width := 6-k;.Color := rgb(random(255),random(255),random(255));(x,y);(x+round(cos(degtorad(a))*l),y+round(sin(degtorad(a))*l));:= x+round(cos(degtorad(a))*l);:= y+round(sin(degtorad(a))*l);:= a + p;:= round(l / 1.17);



unit Unit1;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, ExtCtrls, Buttons;= class(TForm)

Panel1: TPanel;: TImage;: TBitBtn;: TBitBtn;: TEdit;: TEdit;

Edit3: TEdit;: TLabel;: TLabel;: TLabel;BitBtn1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };

Form1: TForm1;

{$R *.dfm}TForm1.BitBtn1Click(Sender: TObject);: integer;, tgy, rX1, rY1: extended;, y, l, n, q, w, e:integer;_real, c_img, x1, X2,Y1,Y2: Double;, zm, zr, zi: Double;:=300;

L:=10;

x1:=-2.4;:=0.8;:=-1.2;:=1.2;x1<0 then x2>0 then :=abs(x1)+abs(x2); ;x1<0 then x2<0 then :=abs(x1)-abs(x2); ;x1>0 then x2>0 then :=x2-x1; ;y1<0 then y2>0 then :=abs(y1)+abs(y2); ;y1<0 then y2<0 then :=abs(y1)-abs(y2); ;y1>0 then y2>0 then:=y2-y1; ;

.Cursor:=crHourGlass; x:=0 to image1.Width do

begin

rX1:=X1+(tgx / image1.Width)*x;

for y:=0 to image1.Height do

begin

rY1:=Y1+(tgy / Image1.Height)*y; :=0;:=0;:=0;cc:=0 to n do

begin

xx:=zr;:=sqr(xx)-sqr(zi)+ rX1;

zi:=2*xx*zi+rY1;:=sqr(zr)+sqr(zi);

if zm>L then break;;

q:=StrToInt(Edit1.Text);

w:=StrToInt(Edit2.Text);:=StrToInt(Edit3.Text);zm<L then image1.Canvas.Pixels[x,y]:=clblack else image1.Canvas.Pixels[x,y]:=rgb(cc*q,cc*w,cc*e);

end;;.cursor:=crDefault;;;.


ЗАКЛЮЧЕНИЕ

фрактал программирование delрhi

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

СПИСОК ЛИТЕРАТУРЫ

1) Интернет ресурс. Точка доступа : <http://www.fractals-main.ru/intro.htm>

) Интернет ресурс. Точка доступа : <http://ru.wikipedia.org>

) Никулин Е.Л. Компьютерная геометрия и алгоритмы машинной графики. - СПб.; БХВ-Петербург, 2003. - 560 е.: ил.

) Морозов Л.Л. Введение в теорию фракталов. - Москва-Ижевск: Институт компьютерных исследований, 2002. 160 стр.

Похожие работы на - Генерирование фракталов

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!