IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Графика в делфи, нужна помощь
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 178
Пол: Мужской

Репутация: -  0  +


Вот нужно переделать код из паскаля в делфи, но проблема возникла с цветами, помогите пожалуйста

Код паскаля:

Program N3;
Uses Graph, Crt;
Type
TComplex = Record
X : Real;
Y : Real;
End;
Const
iter = 50;
max = 1e+6;
min = 1e-6;
Var
z, t, d : TComplex;
p : Real;
x, y, n : Integer;
Cancel : Boolean;
gd, gm : Integer;
mx, my : Integer;
Begin
Cancel := False;
Randomize;
gd := Detect;
InitGraph(gd,gm,'c:\bp\bgi');
Mx := GetMaxX div 2;
My := GetMaxY div 2;
For y := -my to my do
For x := -mx to mx do Begin
n := 0;
z.x := X * 0.005;
z.y := Y * 0.005;
d := z;
While (sqr(z.x)+sqr(z.y) < max) and (sqr(d.x)+sqr(d.y) > min)
and (n < iter) do Begin
t := z;
{z^3 - 1}
p := sqr(sqr(t.x)+sqr(t.y));
z.x := 2/3*t.x + (sqr(t.x)-sqr(t.y))/(3*p);
z.y := 2/3*t.y*(1-t.x/p);{}
d.x := abs(t.x - z.x);
d.y := abs(t.y - z.y);
Inc(n);
If keypressed then cancel := true;
End;
PutPixel(mx + x,my + y,16 - (n mod 16));
If cancel then exit;
End;
Readkey;
CloseGraph;
end.



И то, что я пробовал в делфи, но выводит просто черный экран, подозреваю, что с цветами что-то не так сделал
Там фрактал должен получиться





Const
iter = 50;
max = 1e+6;
min = 1e-6;


Type
TComplex = Record
X : Real;
Y : Real;
End;


procedure TForm1.Button1Click(Sender: TObject);


Var
z, t, d : TComplex;
p : Real;
x, y, n : Integer;
mx, my : Integer;
Begin

Randomize;
Mx := 320;
My := 240;
For y := -my to my do
For x := -mx to mx do Begin
n := 0;
z.x := X * 0.005;
z.y := Y * 0.005;
d := z;
While (sqr(z.x)+sqr(z.y) < max) and (sqr(d.x)+sqr(d.y) > min)
and (n < iter) do Begin
t := z;
p := sqr(sqr(t.x)+sqr(t.y));
z.x := 2/3*t.x + (sqr(t.x)-sqr(t.y))/(3*p);
z.y := 2/3*t.y*(1-t.x/p);{}
d.x := abs(t.x - z.x);
d.y := abs(t.y - z.y);
Inc(n);
End;
image1.canvas.Pixels[mx + x,my + y]:=round(16 - (n div 16));

End;
end;


Сообщение отредактировано: cooler -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 0:06
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name