хочу заценить фракталы:
что можно почитать по фракталам для полного ньюба?
каким кросплатформенным юнитом можно выводить точки и линии на экран?
			
		Модератор: Модераторы
 )
  )

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.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1