Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-07-2003
Carlos A Ortega Carlos A Ortega is offline
Miembro
 
Registrado: jul 2003
Ubicación: Guadalajara de Buba
Posts: 17
Poder: 0
Carlos A Ortega Va por buen camino
Thumbs up Graficos en linea(estilo electrocardiograma)

Hola amigos

Estoy desarrollando un software que consiste en leer un indicador (plc) y almacenar los datos (un proceso industrial).

Necesito graficar estos datos en vivo; es decir, a medida que el aparato me envia datos, irlos graficando estilo electrocardiograma, por asi llamarlo.

Si alguien me puede indicar que tipo de grafica debo utilizar y como hacerlo le quedare enternamente agradecido.

Regars for all.
__________________
Carlos A. Ortega Rios
Responder Con Cita
  #2  
Antiguo 05-08-2003
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
Bueno, pues una vez tengas los datos, prácticamente puedes hacer el gráfico que quieras y como quieras. Incluso, si estás trabajando en Delphi, podrías dibujar sobre una forma (TForm) usando por ejemplo las funciones MoveTo y LineTo, para hacer rayones .

También podrías usar el componente TPaintBox con toda su funcionalidad.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
  #3  
Antiguo 05-08-2003
Carlos A Ortega Carlos A Ortega is offline
Miembro
 
Registrado: jul 2003
Ubicación: Guadalajara de Buba
Posts: 17
Poder: 0
Carlos A Ortega Va por buen camino
ok muchas gracias señor malaria
__________________
Carlos A. Ortega Rios
Responder Con Cita
  #4  
Antiguo 05-08-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 22
andres1569 Va por buen camino
Hola:

¿Has probado con los componentes TeeChart? Creo que se podría usar una gráfica 2D, tipo lineas que unen puntos cartesianos. A medida que van entrando los datos, aparte de almacenarlos, vas sustituyendo el valor Y de la última coordenada X, y eliminando la primera. En teoría (no lo he probado) debería mostrarse lo que quieres.

Sé, no obstante, que existen componentes específicos para mostrarlo como tu quieres, la mayoría de pago.

Y si quieres hacerlo a mano, se me ocurre que almacenes en un array [N] de integer, donde N es el número de puntos en el eje X. Sobre un Canvas (¿TPaintBox?) dibujas cada vez todos los puntos recorriendo el array, acordándote de poner el Pen.Mode = pmNOTXOR. De esta forma, cuando recibes un nuevo punto, redibujas el array anterior (para que se borre la imagen que ya había), eliminas el primer elemento del array, corres la lista a la izquierda y añades el nuevo punto, volviendo a dibujar. Esto debe ser bastante rápido. Mira esto a ver si te sirve de idea:

Código:
var
  Lista : array [200] de integer;

procedure DibujaLista;
var
  i : Integer;
  PAnterior : TPoint;
begin
  with PaintBox1.Canvas do 
  begin
    Pen.Mode := pmNOTXOR;
    PAnterior := Point (0, Lista[0]);
    for i:=0 to High(Lista) do
    begin
      MoveTo (PAnterior.x, PAnterior.y);
      LineTo (i, Lista[i]);
      PAnterior := Point (i, Lista[i]);
    end;
  end;
end;

procedure AnadePunto (y: Integer);
var  
  i : Integer;
begin
  DibujaLista;
  for i:=0 to High(Lista) - 1 do
    Lista[i] := Lista[i + 1];
  Lista[High(Lista)] := y;
  DibujaLista;
end;
__________________
Guía de Estilo
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


La franja horaria es GMT +2. Ahora son las 20:03:51.


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