Автор работы: Пользователь скрыл имя, 25 Мая 2013 в 09:24, контрольная работа
Разрабатываемое приложение предназначено для демонстрации построения простейших фракталов.
Данное приложение может быть востребовано преподавателями и студентами высших учебных заведений.
1.2 Технические характеристики
Данное приложения может работать не только под операционной системой Windows, но и под NIX системами с помощью эмулятора Windows-приложений Wine.
{получение цвета в который будет
окрашиваться фрактал по умолчанию}
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(
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(
end;
label10.Caption:=inttostr(
end;
end;
Информация о работе Построение фракталов на языках программирования