Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   C/C++ (http://www.forosdelweb.com/f96/)
-   -   GNUPLot con C++ (http://www.forosdelweb.com/f96/gnuplot-con-c-426615/)

Warlord_Furia 17/09/2006 17:19

GNUPLot con C++
 
Hola a todos:

Tal vez muchos sepan de la existencia del GNUPlot (programa para hacer graficos 2d y 3d). Yo recien lo descubro por medio de un amigo.

Al Grano!!!!!
Se que puedo combinar las funciones de este programa (GNUPlot) desde muchos editores de codigo fuente en mi caso "Borland c++ 5.02".
La pregunta es ¿Como? ¿Como puedo desde la linea de codigo de c++ llamar a las funciones del (GNUPLot)? , si alguien tiene la respuesta por fabor posteela.

Nota
Trabajo con "Borland c++ 5.02" , Tengo el "GNUPlot 4.0". ¿Que Sigue :P?
He visto muchos Programas Graficadores hechos en C++ que hicieron uso de las Funciones del GNUPLot pero lamentablemente no pude acceder al codigo es por ello que recurro a este foro en busca de ayuda.

Desde ya!!! Agradesco todos los Aportes.

Nivel7 17/09/2006 23:24

No conosco tal programa, pero suena mas como una libreria.

las forma en que puedes usarla seria a traves de una libreria estatica o una DLL.


ademas es necesario tener los ficheros de cabecera de este programa o libreria.

verifica que es lo que trae con sigo este programa.

Saludos.

Warlord_Furia 18/09/2006 10:53

Cita:

Iniciado por Nivel7 (Mensaje 1703083)
No conosco tal programa, pero suena mas como una libreria.
las forma en que puedes usarla seria a traves de una libreria estatica o una DLL.
ademas es necesario tener los ficheros de cabecera de este programa o libreria.
verifica que es lo que trae con sigo este programa.
Saludos.

Pues este aporte no me ayudo en nada.
He buscado información en la red y hay muchos que como yo Buscan la Manera de Invocar el GNUPlot con el C++.

Lo unico que pude encontrar fue un comentario en el cual se explica la manera de invocar este programa desde la linea de codigo de c++, pero a decir verdad no entendi absolutamente nada. ya que, se trataba de un caso particular.

Aqui el Comentario (Ingles).

este es el caso del cual no entendi nada solo se que son indicaciones para que el programa termine cuando el gnuplot termine el dibujo.

-------------------------------------------------------------------------
Joseph Suprenant wrote:
> Hello all,
> I have a C++ program, it does some calculations on things and then
> prints out a file in the format in which GNUPLOT can use. So my question is
> how would i call GNUPLOT from my C++ program. I know in some operating
> systems you can do system("gnuplot");

system is useless since then you can't pass any commands to GNUplot

> But not with red hat 7.3. So could
> some kind soul help me out? After it starts up GNUPLOT my program will
> terminate.


I've done this on Linux using the popen() function (which is not
standard C++, but POSIX-standard)

class GNUplot {
public:
GNUplot() throw(string);
~GNUplot();
void operator ()(const string& command);
// send any command to gnuplot
protected:
FILE *gnuplotpipe;
};

GNUplot::GNUplot() throw(string) {
gnuplotpipe=popen("gnuplot","w");
if (!gnuplotpipe) {
throw("Gnuplot not found !");
}
}

GNUplot::~GNUplot() {
fprintf(gnuplotpipe,"exit\n");
pclose(gnuplotpipe);
}

void GNUplot:perator() (const string& command) {
fprintf(gnuplotpipe,"%s\n",command.c_str());
fflush(gnuplotpipe);
// flush is necessary, nothing gets plotted else
};


You simply construct one object and invoke it with operator () like

GNUplot plotter;
plotter("plot sin(x)");

Note that GNUplot will be killed as soon as your program terminates. So
you need to wait for keystroke or similar, otherwise you will only see
short flashing of the graph. If you need that the graph window stays on
screen after your pragram fnished, then instead of "gnuplot" in the
constructor invoke "gnuplot -persist".

-------------------------------------------------------------------------
Si alguien tiene información acerca de lo que busco.

¿¿Como invocar al GNUPLot desde la Linea de Codigo de C++ y como hacer uso de este??

Agradesco desde ya!!

MaxExtreme 18/09/2006 13:46

Pues yo lo veo bien claro, y el comentario en inglés lo explica perfectamente.

Usa popen() y demás para abrir una tubería que te comunique con la entrada estándar de GNU Plot.

Y si necesitas más ayuda que la que te da el comentario (que te viene hasta el código hecho), busca en Google que he encontrado más 3 referencias de cómo hacerlo en la primera página...

Warlord_Furia 18/09/2006 18:11

Cita:

Iniciado por MaxExtreme (Mensaje 1703875)
Pues yo lo veo bien claro, y el comentario en inglés lo explica perfectamente.
Usa popen() y demás para abrir una tubería que te comunique con la entrada estándar de GNU Plot.
Y si necesitas más ayuda que la que te da el comentario (que te viene hasta el código hecho), busca en Google que he encontrado más 3 referencias de cómo hacerlo en la primera página...

Claro .. se que me dice como hacerlo pero desde LINUX

Yo quisiera Saber como invocarlo desde Windows.

Si tienes los Links por fabor hazmelos llegar.

MaxExtreme 21/09/2006 16:44

Cita:

Iniciado por Warlord_Furia (Mensaje 1704199)
Claro .. se que me dice como hacerlo pero desde LINUX

Yo quisiera Saber como invocarlo desde Windows.

Si tienes los Links por fabor hazmelos llegar.

Dice como hacerlo, punto. Infórmate de la función popen(), y sabrás que es y para qué sirve.

Puedes usarlo desde Windows usando algun port de esa función, o en otro caso, buscando la equivalencia en la API de Windows (que existe).

Los Links, están en la primera página de Google, y no, no pienso copiártelos.

Ligator 06/05/2010 19:13

Respuesta: GNUPLot con C++
 
¡Que lata es poder hacer un comentario en este foro!, deberían reestructurar la forma en que te registras.

Pero bueno, con respecto al tema:
http://pegasus.udea.edu.co/~jzuluaga/Documentos/Documento_19.doc

Es un archivo *.doc en el que te explican detalladamente como hacer lo que quieres, Todo se reduce a invocar el programa gnuplot desde la terminal (es igual en Linux y en Windows).
En C solo tienes que escribir:
system("gnuplot archivo");

Esto ejecuta el programa con el archivo que le pongas pero desde tu código en C.

Suerte.

Ligator 08/05/2010 00:37

Respuesta: GNUPLot con C++
 
mmmmm, parece que iniciar sesión no es tanta lata como registrarse...

El archivo anterior explica como comunicarse con GNUPlot por medio de un archivop script, pero existe otra forma que es por tuberías en ANSI C:

http://computacion.cs.cinvestav.mx/~acaceres/courses/gnuplotCurso/node11.html

Me parece la mejor y aunque seguramente al amigo Warlord_Furia ya no le sirva, quizá a otros si.

JavierB 08/05/2010 03:12

Respuesta: GNUPLot con C++
 
Hola Ligator

Te recuerdo el aviso que había al final de este tema y que parece que no has leído o no le has hecho ni caso.

http://img39.imageshack.us/img39/9218/antiguow.jpg

Tema cerrado.


La zona horaria es GMT -6. Ahora son las 05:25.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.