хочу заценить фракталы:
что можно почитать по фракталам для полного ньюба?
каким кросплатформенным юнитом можно выводить точки и линии на экран?
Модератор: Модераторы
program derevo;
uses graph,crt;
var gd,gm:integer;
procedure line1(x1,x2,x3,x4 : double);
begin
line(round(x1),round(x2),round(x3),round(x4));
end;
procedure frac1(x1,y1,x2,y2,i:double);
var x3,y3,x4,y4,dx,dy,x5,y5 : double;
begin
if (i>0) then
begin
line1(x1,y1,x2,y2);
i-=1;
dx:=(x2-x1) / 1.6;
dy:=(y2-y1) / 1.6;
x3:=x1+dx;
y3:=y1+dy;
x4:=x3+dy;
y4:=y3-dx;
x5:=x3-dy;
y5:=y3+dx;
frac1(x3,y3,x4,y4,i);
frac1(x3,y3,x5,y5,i);
end;
end;
var ii,w : integer;
xc1,yc1,cc1,cc,xc,yc,x,y,r,a,x0,y0 : double;
begin
initgraph(gd,gm,'c:\tp70\bgi');
x0:=300;
y0:=400;
x:=80;
y:=50;
w:=0;
r:=sqrt(x*x+y*y);
a:=arctan(x/y);
cc:=0.7;
xc:=x0+cc*r*sin(a);
yc:=y0+cc*r*cos(a);
cc1:=0.2;
xc1:=x0+cc1*r*sin(a);
yc1:=y0+cc1*r*cos(a);
for ii :=1 to 500 do
begin
w:=1 xor w;
a+=0.05;
setactivepage(w);
x:=xc+r*sin(a);
y:=yc+r*cos(a);
x0:=xc1-cc1*r*sin(cc1+a);
y0:=yc1+cc1*r*cos(cc1+a);
xc1:=x0+cc1*r*sin(a);
yc1:=y0+cc1*r*cos(a);
frac1(x0,y0,x,y,10);
setvisualpage(w);
delay(30);
cleardevice();
end;
delay(1000);
end.
program derevo;
//uses graph,crt;
uses wingraph,wincrt,winmouse,sysutils;
var gd,gm:integer;
procedure line1(x1,x2,x3,x4 : double);
begin
line(round(x1),round(x2),round(x3),round(x4));
end;
procedure frac1(x1,y1,x2,y2,i:double);
var x3,y3,x4,y4,dx,dy,x5,y5 : double;
begin
if (i>0) then
begin
line1(x1,y1,x2,y2);
i-=1;
dx:=(x2-x1) / 1.6;
dy:=(y2-y1) / 1.6;
x3:=x1+dx;
y3:=y1+dy;
x4:=x3+dy;
y4:=y3-dx;
x5:=x3-dy;
y5:=y3+dx;
frac1(x3,y3,x4,y4,i);
frac1(x3,y3,x5,y5,i);
end;
end;
var ii,w : integer;
xc1,yc1,cc1,cc,xc,yc,x,y,r,a,x0,y0 : double;
begin
//initgraph(gd,gm,'c:\tp70\bgi');
initgraph(gd,gm,'');
x0:=300;
y0:=400;
x:=80;
y:=50;
w:=0;
r:=sqrt(x*x+y*y);
a:=arctan(x/y);
cc:=0.7;
xc:=x0+cc*r*sin(a);
yc:=y0+cc*r*cos(a);
cc1:=0.2;
xc1:=x0+cc1*r*sin(a);
yc1:=y0+cc1*r*cos(a);
for ii :=1 to 500 do
begin
UpdateGraph(UpdateOff);
w:=1 xor w;
a+=0.05;
setactivepage(w);
x:=xc+r*sin(a);
y:=yc+r*cos(a);
x0:=xc1-cc1*r*sin(cc1+a);
y0:=yc1+cc1*r*cos(cc1+a);
xc1:=x0+cc1*r*sin(a);
yc1:=y0+cc1*r*cos(a);
frac1(x0,y0,x,y,10);
setvisualpage(w);
UpdateGraph(UpdateNow);
delay(30);
cleardevice();
end;
delay(1000);
end.
Lazy писал(а):cannt find unit wingraph А по ссылке лень было сходить.
Если кросплатформенный и быстрый, то используй SDL. В ней есть интерфейс к OpenGL.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5