Показать сообщение отдельно
  #2  
Старый 05.01.2007, 02:24
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Я даже знаю прогу, откуда ты взял этот код! Видно у тебя старая версия… Вот, держи то, что просил…

procedure TForm1.Button2Click(Sender: TObject);
var
cc, x, y: integer;
C_imagJ, C_realJ, rX1, rY1, xx, zm, zr, zi: extended;
n, l: integer;
x1, X2,Y1,Y2: Double;
tgx, tgy: extended;
begin
n:=300;
L:=10;
C_imagJ:=-0.58679;
C_realJ:=-0.39054;
{ //Возможные значения
x1:=-0.19920;
x2:=-0.12954;
y1:=1.01480;
y2:=1.06707;
}
y1:=-1.5;
y2:=1.5;
x1:=-2;
x2:=2;
//проверяем условия и вычисляем коэффициент перевода в декартову систему
if x1<0 then begin if x2>0 then tgx:=abs(x1)+abs(x2); end;
if x1<0 then begin if x2<0 then tgx:=abs(x1)-abs(x2); end;
if x1>0 then begin if x2>0 then tgx:=x2-x1; end;
if y1<0 then begin if y2>0 then tgy:=abs(y1)+abs(y2); end;
if y1<0 then begin if y2<0 then tgy:=abs(y1)-abs(y2); end;
if y1>0 then begin if y2>0 then tgy:=y2-y1; end;
begin
screen.Cursor:=crHourGlass; //Установка курсора в песочные часы
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:=rx1;
zi:=ry1;
zm:=0;
for cc:=0 to n do
begin
xx:=zr;
zr:=sqr(xx)-sqr(zi)+ C_realJ;
zi:=2*xx*zi+C_imagJ;
zm:=sqr(zr)+sqr(zi);
if zm>L then break;
end;
//Раскрашиваем (изменяя множитель меняем цвет)
if zm<L then image1.Canvas.Pixels[x,y]:=clblack else image1.Canvas.Pixels[x,y]:=rgb(cc*50,cc*9,cc*5);
end;
end;
screen.cursor:=crDefault;
end;
end;
Ответить с цитированием