Студопедия — Цель работы. Освоить создание фрактальных композиций при помощи среды программирования Паскаль.
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Цель работы. Освоить создание фрактальных композиций при помощи среды программирования Паскаль.






Освоить создание фрактальных композиций при помощи среды программирования Паскаль.

Задачи работы

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

 

Порядок выполнения работы

Одним из приложений теории фракталов является генерация фрактальных деревьев.

3.1 Загрузите среду программирования Паскаль. Создайте с ее помощью фрактальную композицию, основанную на повторении элементов дерева. Образец фрактальной композиции предложен на рисунке.

program Vetka2;

uses Graph, CRT;

Const

min = 1;

Var

gd, gm: Integer;

 

procedure lineto1(x, y: Integer; l, u: real);

Begin

Line(x, y, Round(x + l * cos(u)), Round(y - l * sin(u)));

end;

 

procedure Draw(x, y: Integer; l, u: real);

Begin

if KeyPressed then exit;

if l > min then begin

lineto1(x, y, l, u);

x:= Round(x + l * cos(u));

y:= Round(y - l * sin(u));

Draw(x, y, l*0.4, u - pi/4);

Draw(x, y, l*0.4, u + pi/4);

Draw(x, y, l*0.7, u);

end;

end;

 

Begin

gd:= Detect;

InitGraph(gd, gm, 'c:\bp\bgi');

Draw(320, 460, 120, pi/2);

ReadKey;

CloseGraph;

end.

...

procedure Draw(x, y: Integer; l, u: real);

Begin

if KeyPressed then exit;

if l > min then begin

lineto1(x, y, l, u);

x:= Round(x + l * cos(u));

y:= Round(y - l * sin(u));

Draw(x, y, l*0.4, u - pi/4);

Draw(x + Round(l*0.4*cos(u)),

y - Round(l*0.4*sin(u)), l*0.4, u + pi/4);

Draw(x, y, l*0.7, u);

end;

end;

...

 

3.2 Ознакомьтесь с примером программы, создайте фрактальные композиции. В отчете представьте все варианты деревьев.

 

program Tree3;

uses CRT, Graph;

Var

gd, gm: Integer;

 

procedure FrTree(x, y, l, u: Real; t: Integer);

Begin

if t>0 then begin

l:= l*0.5;

Line(Round(x),Round(y),Round(x+l*cos(u)),Round(y-l*sin(u)));

x:= Round(x + l * cos(u));

y:= Round(y - l * sin(u));

FrTree(x, y, l, u, t-1);

FrTree(x, y, l, u+pi/4, t-1);

FrTree(x, y, l, u-pi/4, t-1);

end;

end;

 

Begin

gd:=Detect;

InitGraph(gd, gm, 'c:\bp\bgi');

FrTree(320, 460, 350, pi/2, 6);

FrTree(320, 460, 350, 3*pi/4, 6);

FrTree(320, 460, 350, pi/4, 6);

ReadKey;

CloseGraph

end.

 

IFS Деревья  
Tree_1 { 0 0 0 0.50 0 0 0.05 0.42 -0.42 0.42 0.42 0 0.2 0.4 0.42 0.42 -0.42 0.42 0 0.2 0.4 0.1 0 0 0.1 0 0.2 0.15 }
Tree_2 { 0.195 -0.488 0.344 0.443 0.4431 0.2452 0.25 0.462 0.414 -0.252 0.361 0.2511 0.5692 0.25 -0.058 -0.07 0.423 -0.111 0.5976 0.0969 0.15 -0.035 0.07 -0.469 0.022 0.4884 0.5069 0.15 -0.637 0 0 0.501 0.8562 0.2513 0.2 }
Tree_3 { 0.28421 -0.35644 0.32632 0.44555 0.00625 0.56275 0.166 0.37895 0.38614 -0.27368 0.34653 -0.08171 0.54063 0.166 0.41053 0 0 0.55446 -0.02832 0.53347 0.166 -0.62105 0 0 0.43564 -0.09537 0.35772 0.166 -0.03158 -0.07921 0.55790 -0.08911 -0.00755 0.51196 0.166 -0.08421 0.08911 -0.55790 -0.05941 -0.17617 0.40587 0.166 }
   
Tree_4 { 0.05 0 0 0.4 -0.06 -0.47 0.026 -0.05 0 0 -0.4 -0.06 -0.47 0.02640 0.03 -0.14 0 0.26 -0.16 -0.01 0.01030 -0.03 0.14 0 -0.26 -0.16 -0.01 0.01030 0.56 0.44 -0.37 0.51 0.3 0.15 0.59187 0.19 0.07 -0.01 0.15 -0.2 0.28 0.03854 -0.33 -0.34 -0.33 0.34 -0.54 0.39 0.29620 }
   

 

Tree_5 { 0.05 0 0 0.6 0 0 0.028 0.05 0 0 -0.5 0 1 0.02326 0.45963 -0.32139 0.38567 0.38302 0 0.6 0.27907 0.46985 -0.15391 0.17101 0.42286 0 1.1 0.20930 0.43301 0.275 -0.25 0.47631 0 1 0.25581 0.42133 0.25712 -0.35353 0.30642 0 0.7 0.20465 }
   
Tree_6 { 0.45881 -0.22565 0.07268 0.60187 -0.00177 0.31948 0.31 0.34268 0.37561 -0.20337 0.54642 -0.02210 0.32976 0.2 0.13582 0.50273 -0.31347 0.13846 -0.02004 0.21706 0.16 0.25326 -0.48975 0.30798 0.34989 -0.00740 0.19810 0.23 0.06641 0 0 0.47942 -0.01492 -0.02422 0.1 }

 

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

Представить свой вариант дерева.

program FracTree;

uses Graph, CRT;

procedure Tree(x, y: Integer; a: Real; l: Integer);

Var

x1, y1: Integer;

p, s: Integer;

i: Integer;

a1: Real;

Begin

if l<8 then exit;

x1:= Round(x + l*cos(a));

y1:= Round(y + l*sin(a));

if l > 100 then p:=100 else p:=l;

if p < 40 then begin

{Генерация листьев}

if Random > 0.5 then SetColor(10) else SetColor(2); {4, 14}

for i:=0 To 3 do Line(x+i, y, x1, y1)

End







Дата добавления: 2015-10-02; просмотров: 566. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Гносеологический оптимизм, скептицизм, агностицизм.разновидности агностицизма Позицию Агностицизм защищает и критический реализм. Один из главных представителей этого направления...

Функциональные обязанности медсестры отделения реанимации · Медсестра отделения реанимации обязана осуществлять лечебно-профилактический и гигиенический уход за пациентами...

Определение трудоемкости работ и затрат машинного времени На основании ведомости объемов работ по объекту и норм времени ГЭСН составляется ведомость подсчёта трудоёмкости, затрат машинного времени, потребности в конструкциях, изделиях и материалах (табл...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия