Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-08-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 18
Khronos Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 30-08-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
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.
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 30-08-2007 a las 05:27:58.
Responder Con Cita
  #3  
Antiguo 30-08-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 18
Khronos Va por buen camino
Muchas gracias delphius, la verdad es que no esperaba que hubiera una solucion facil para el reproductor que estoy haciendo
Tambien encontre un componente para reproducir todos los formatos de audio y video, pero vale 2500$

Voy a intentar hacer otros diseños

Salu2 y gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Componente chalys Varios 1 20-10-2005 08:11:47
Programar Fractales JDvD Gráficos 1 11-04-2005 10:17:58
Apuntar una propiedad de un componente a otra de otro componente Majo Varios 10 24-03-2004 19:46:39
Componente!! merlin Impresión 1 17-12-2003 12:50:04
Componente On/Off sergisan OOP 8 30-05-2003 16:31:30


La franja horaria es GMT +2. Ahora son las 14:31:54.


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