Построение фракталов на языках программирования

Автор работы: Пользователь скрыл имя, 25 Мая 2013 в 09:24, контрольная работа

Описание работы

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

1.2 Технические характеристики
Данное приложения может работать не только под операционной системой Windows, но и под NIX системами с помощью эмулятора Windows-приложений Wine.

Файлы: 1 файл

Курсовая.doc

— 724.50 Кб (Скачать файл)

{получение цвета в  который будет

 окрашиваться фрактал  по умолчанию}

with btm.canvas do

begin

 

tmr1:=gettickcount;

  n:=600;

  L:=10;

 

  y1:=StrTofloat(Edit4.text);

  y2:=StrTofloat(Edit3.text);

  x1:=StrTofloat(Edit1.text);

  x2:=StrTofloat(Edit2.text);

 

//проверка условий и вычисление коэффициента перевода в декартову систему;

if (x1<0) and (x2>0) then tgx:=abs(x1)+abs(x2);

if (x1<0) and (x2<0) then tgx:=abs(x1)-abs(x2);

if (x1>0) and (x2>0) then tgx:=x2-x1;

if (y1<0) and (y2>0) then tgy:=abs(y1)+abs(y2);

if (y1<0) and (y2<0) then tgy:=abs(y1)-abs(y2);

if (y1>0) and (y2>0) then tgy:=y2-y1;

begin

screen.Cursor:=crHourGlass; //Установка курсора в песочные часы

     btm.canvas.FillRect(clientrect);

for 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; //Приводим у к координатам Декарта

          zr:=0;

          zi:=0;

          zm:=0;

          for cc:=0 to n do

            begin

            xx:=zr;

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

            zi:=2*xx*zi+rY1;

            zm:=sqr(zr)+sqr(zi);

            if zm>L then break;

            end;

          //Раскрашиваем (изменяя множители, меняем цвет)

          if zm<L then Pixels[x,y]:=clblack else Pixels[x,y]:=rgb(r4 * cc, g4 * cc, b4 * cc);

 

        end;

     end;

screen.cursor:=crDefault;

image1.picture.Bitmap.Assign(btm);

end;

label10.Caption:=inttostr(gettickcount-tmr1);

end;

end;


Информация о работе Построение фракталов на языках программирования