Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Componente fractales (https://www.clubdelphi.com/foros/showthread.php?t=47507)

Khronos 30-08-2007 02:39:25

Componente fractales
 
Hola, me gustaria saber si alguien conoce algun componente que genere fractales de video, como los del winamp o el windows media player.

Salu2

Delphius 30-08-2007 05:21:03

Te servirá esto?
 
Hola Khronos.
¿Te fijaste en torry?
No se que tan elaborados quieres que sean esos efectos vivos que adornan al winamp y/o a otros reproductores....

Hace tiempo experimenté generar cosas como esas, pero como me pareció un poco complicado hallar ecuaciones que me generen esas formas opté por practicar cosas más sencillas. Por ejemplo:

Código Delphi [-]
// Los nombres son inventos mios! No si tienen algún nombre específico.
//Efecto aurora:
begin
Canvas.Pen.Color := RGB(Random(255),Random(255),Random(255));
Canvas.Pen.Width := Random(3);
for i:=1 to 100 do
  begin
  Canvas.LineTo(Pto.X,Pto.Y);
  x := Random(form1.Width);
  y := Random(form1.Height);
  Canvas.LineTo(x,y);
  Canvas.Refresh;
  end;
end;

//Efecto Laser Fijo {auora }:
begin
Canvas.Pen.Color := RGB(Random(255),Random(255),Random(255));
Canvas.Pen.Width := 3;
for i:=1 to ((Random(10)+1)*10) do
  begin
  Canvas.LineTo(Pto.X,Pto.Y);
  x := Random(form1.Width);
  y := Random(form1.Height);
  Canvas.LineTo(x,y);
  Canvas.Refresh;
  end;
form1.Refresh;
end;

//Efecto Laser Rotatorio { aurora }:
begin
Pto.X := Random(form1.Width);
Pto.Y := Random(form1.Height);
Canvas.Pen.Color := RGB(Random(255),Random(255),Random(255));
Canvas.Pen.Width := 3;
for i:=1 to ((Random(10)+1)*10) do
  begin
  Canvas.LineTo(Pto.X,Pto.Y);
  x := Random(form1.Width);
  y := Random(form1.Height);
  Canvas.LineTo(x,y);
  Canvas.Refresh;
  end;
form1.Refresh;
end;

//Efecto Laser:
begin
Canvas.Pen.Color := RGB(Random(255),Random(255),Random(255));
Canvas.Pen.Width := 3;
for i:=1 to 100 do
  begin
  Canvas.LineTo(Pto.X,Pto.Y);
  x := Random(form1.Width);
  y := Random(form1.Height);
  Canvas.LineTo(x,y);
  //Canvas.Refresh;
  form1.Refresh;
  end;
form1.Refresh;
end;

//Efecto aurora doble:
begin
Canvas.Pen.Color := RGB(Random(255),Random(255),Random(255));
Canvas.Pen.Width := Random(3);
for i:=1 to 50 do
  begin
  Canvas.LineTo(Pto.X div 2,Pto.Y);
  x := Random(form1.Width);
  y := Random(form1.Height);
  Canvas.LineTo(x,y);
  Canvas.Refresh;
  Canvas.LineTo(Pto.X div 2 + Pto.X ,Pto.Y);
  x := Random(form1.Width);
  y := Random(form1.Height);
  Canvas.LineTo(x,y);
  Canvas.Refresh;
  end;
end;

//Efecto laser Fijo doble { aurora }:
begin
Canvas.Pen.Color := RGB(Random(255),Random(255),Random(255));
Canvas.Pen.Width := 3;
for i:=1 to ((Random(10)+1)*10) do
  begin
  Canvas.LineTo(Pto.X div 2,Pto.Y);
  x := Random(form1.Width);
  y := Random(form1.Height);
  Canvas.LineTo(x,y);
  Canvas.LineTo(Pto.X div 2 + Pto.X ,Pto.Y);
  x := Random(form1.Width);
  y := Random(form1.Height);
  Canvas.LineTo(x,y);
  Canvas.Refresh;
  end;
form1.Refresh;
end;

//Efecto Laser Rotatorio Multiple { aurora }
begin
for j:=1 to Random(2)+1 do
  begin
  Pto.X := Random(form1.Width);
  Pto.Y := Random(form1.Height);
  Canvas.Pen.Color := RGB(Random(255),Random(255),Random(255));
  Canvas.Pen.Width := 3;
  for i:=1 to ((Random(10)+1)*10) do
    begin
    Canvas.LineTo(Pto.X,Pto.Y);
    x := Random(form1.Width);
    y := Random(form1.Height);
    Canvas.LineTo(x,y);
    Canvas.Refresh;
    end;
  end;
form1.Refresh;
end;

// El efecto aurora y el aurora doble requiere de otro timer que se encargue de limpiar el formulario.

Se que no es lo que buscas... yo te ofrezco esas alternativas sencillas.
No está demás que para ver dichos efectos debes emplear el evento OnTimer de un timer (o si quieres algo más "elaborado": Threads).

Saludos,

EDITO Y AGREGO:
Se me olvidó decir que Pto es un TPoint, y lo uso para guardar el punto central del form.

Khronos 30-08-2007 21:58:19

Muchas gracias delphius, la verdad es que no esperaba que hubiera una solucion facil para el reproductor que estoy haciendo :D
Tambien encontre un componente para reproducir todos los formatos de audio y video, pero vale 2500$ :D

Voy a intentar hacer otros diseños :D

Salu2 y gracias.


La franja horaria es GMT +2. Ahora son las 07:33:46.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi