Мои Конспекты
Главная | Обратная связь


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

Построение фрактальных изображений.



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

Алгоритм рисования снежинки: из одной точки – центра вырастают k кристалликов-отрезков длины r, свободный конец каждого из которых служит центром новой снежинки с длиной кристаллика–отрезка, в 3 раза меньшей r. Указанный процесс продолжается n раз. Выше показаны снежинки при n=1,2 и k=6.

Для построения снежинок введем рекурсивную процедуру, параметрами которой будут координаты центра снежинок x0, y0, радиус– длина r и глубина рекурсии n. Для размещения рисунка в центре экран начальный радиус определим по формуле: , полагая dim=240, k=1/3. Получим: k=160/(1–1/3n). Координаты концов отрезка (x,y) будем находить, используя параметрическое задание уравнения окружности со смещением на заданный угол:

.

Чтобы величины и не вычислялись в цикле многократно, запомним их значения в массивах C и S.

Program Sneg;

Uses Graph;

Const

k=6; {количество кристаллов}

n=5; {глубина рекурсии}

t=2*Pi/k; {угол поворота}

Var

Driver,Mode,I :Integer;

C,S :array[1..k] of Real;

Procedure Snow(x0,y0,r,m:Integer);

Var

x,y,i:Integer;

Begin

For i:=1 to k do

Begin

x:=x0+Round(r*C[i]);

y:=y0-Round(r*S[i]);

Line(x0,y0,x,y);

If m>1 then Snow(x,y,r div 3,m-1)

end;

End;

Begin

Driver:=Detect;

InitGraph(Driver,Mode,'');

For i:=1 to k do

Begin

C[i]:=Cos(i*t);

S[i]:=Sin(i*t);

end;

Snow(GetMaxX div 2,GetMaxY div 2,

Round(160/(1-1/(Exp(n*Ln(3))))),n);

ReadLn;

CloseGraph;

End.

 


ЛИТЕРАТУРА

1. Бородич Ю.С. и др. Паскаль для персональных компьютеров: Справ. Пособие / Ю.С.Бородич, А.Н.Вальвачев, А.И.Кузьмич. – Мн.: Выш. шк.: БФ ГИТМП «НИКА», 1991. – 365 с.

2. Вальвачев А.Н., Крисевич В.С. Программирование на языке Паскаль для персональных ЭВМ ЕС: Справ. пособие. – Мн.: Выш.шк., 1989. – 223 с.: ил.

3. Офицеров Д.В. и др. Программирование на персональных ЭВМ: Практикум: Учеб. Пособие / Д.В.Офицеров, А.Б. Долгий, В.А.Старых; Под общ. ред. Д.В.Офицерова. – Мн.: Выш.шк., 1993. – 256 с.

4. Немнюгин С.А. Turbo Pascal: практикум – СПб: Питер, 200. – 256 с.:ил.

5. Пантелеева З.Т. Графика вычислительных процессов: Учеб.пособие. – М.: Финансы и статистика, 1983. – 167 с., ил.

6. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. – М.: «Нолидж», 1997. – 616 с., ил.

7. Фигурнов В.Э. IBM PC для пользователя. Изд. 7-е, перераб. И доп. – М.: ИНФРА – М, 1997. – 640 с.: ил.


 

 

Учебное издание

 

 

Ружицкая Елена Адольфовна

Карасёва Галина Леонидовна

Орлов Владимир Васильевич

Смородин Виктор Сергеевич

Дёмова Тамара Максимовна

Богданова Татьяна Григорьевна

 

 




Поиск по сайту:







©2015-2020 mykonspekts.ru Все права принадлежат авторам размещенных материалов.