Ich habe die folgenden Funktionen, deren Ziel es ist, ein GLUT-Fenster anzuzeigen, das ein 3D-Objekt anzeigt, und ein Gnuplot-Fenster, um ein Diagramm anzuzeigen.GLUT- und gnuplot-Fenster werden nicht gleichzeitig angezeigt
Dafür verwende ich die Gnuplot-Iostream Interface. Der Zeichencode befindet sich innerhalb einer Funktion, da er aktualisiert wird, wenn der Benutzer auf der Tastatur tippt.
Der folgende Code wird nur die Gnuplot-Fenster angezeigt werden, nachdem ich die GLUT-Fenster zu schließen:
#include "gnuplot-iostream.h"
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
void displayGraph();
void displayGnuplot();
Gnuplot gp;
int main(int argc, char** argv) {
displayGnuplot();
glutInit(&argc,argv);
glutInitWindowSize(1024, 1024);
glutInitWindowPosition(1080,10);
glutCreateWindow("Continuum Data");
glutDisplayFunc(displayGraph);
glutMainLoop();
}
void displayGraph(){
/*
Code to display in Glut window that will be updated
*/
}
void displayGnuplot(){
bool displayGnuplot = true;
gp << "set xrange [-2:2]\nset yrange [-2:2]\n";
gp << "plot '-' with vectors title 'pts_A', '-' with vectors title 'pts_B'\n";
}
Was die Gnuplot Instanz innerhalb der displayGraph Funktion erklärt arbeitet wird. Leider funktioniert das nicht für meinen Fall, da jedes Mal, wenn die displayGraph-Funktion aufgerufen wird, ein neues Gnuplot-Fenster erstellt wird, während ich nur möchte, dass das Gnuplot-Fenster aktualisiert wird.
Ich habe auch versucht, einen Zustand, um die Schaffung des Gnuplot-Fensters ohne Erfolg setzen:
#include "gnuplot-iostream.h"
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
void displayGraph();
void displayGnuplot();
Gnuplot gp;
int main(int argc, char** argv) {
displayGnuplot();
glutInit(&argc,argv);
glutInitWindowSize(1024, 1024);
glutInitWindowPosition(1080,10);
glutCreateWindow("Continuum Data");
glutDisplayFunc(displayGraph);
glutMainLoop();
}
void displayGraph(){
/*
Code to display in Glut window that will be updated
*/
}
void displayGnuplot(){
if(!gnuplotExists){
Gnuplot gp;
gnuplotExists = true;
}
gp << "set xrange [-2:2]\nset yrange [-2:2]\n";
gp << "plot '-' with vectors title 'pts_A', '-' with vectors title 'pts_B'\n";
}
Warum glauben Sie, dass 'gnuplot' OpenGL verwenden kann? – Ripi2
Ich kann sehen, wie mein Code ein wenig verwirrend war, ich habe es aktualisiert, um die Verwendung von GLUT und Gnuplot zu trennen. Ich möchte, dass die Fenster Gnuplot und GLUT beide gleichzeitig angezeigt werden. Sie interagieren nicht wirklich miteinander. –