IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

appel de gnuplot dans un programme en c++


Sujet :

Visual C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Points : 23
    Points
    23
    Par défaut appel de gnuplot dans un programme en c++
    Bonjour,
    Je viens vous soliciter pour un probleme dont je n'ai pas trouvé de solution sur internet.

    Je suis actuellement en stage et je dois créer une application (windows form visual c++) dans laquelle je trace des graphiques (courbes3d et abaques)

    Je pense utiliser le programme gnuplot dans mon application pour tracer ces graphiques.

    Le probleme est que je n'arrive pas à faire tracer une courbe à gnuplot à partir de mon programme c++.

    Je vais vous décrire comment je fais

    Tout d'abord j'écris l'équation de ma courbe et les parametres de tracé dans un fichier text.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ofstream fichier("graphique.txt", ios::out | ios::trunc);  
    fichier << "set xlabel \"Diametre\"\n";
    fichier << "set ylabel \"Recouvrement\"\n";
    fichier << "set zlabel \"Perte\"\n";
    fichier << "set title \"Parametre fixe épaisseur\"\n";
    fichier << "set nocontour\n";
    fichier << "set cntrparam levels 10\n";
    fichier << "set surface\n";
    fichier << "set view 60,30,1,1\n";
    fichier << "splot sin(x*y)";
    Jusque là tout va bien.

    Ensuite j'appelle gnuplot et je fais un load 'graphique.txt' de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    system("C:\\...\\wgnuplot.exe load \'graphique.txt\' ");
    Sleep(2000);
    Voila mais mon soucis c'est que rien ne se passe. tout compile correctement mais rien ne s'affiche à l'execution

    Merci de m'aider car je ne sais plus comment faire. Je rappelle que je code sous windows avec visual c++ (projet windows form).

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Points : 23
    Points
    23
    Par défaut
    C'est bon, j'ai trouvé la solution. Il fallait faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("wgnuplot graphique.txt -");
    L'important est le "-" à la fin et de mettre dans la variable d'environnement path le chemin d'accès à wgnuplot.exe.

    Par contre tant que je suis là, j'ai une autre question.

    Mon graphique s'affiche correctement mais dans une autre fenêtre. Est il possible d'insérer le graphique dans ma "Form" dans un pictureBox par exemple

    merci d'avance

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 36
    Points : 23
    Points
    23
    Par défaut
    En fait, c'est bon, j'ai tout simplement enregistrer l'image gnuplot dans un fichier bmp et je l'affiche dans un pictureBox.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 24
    Points : 28
    Points
    28
    Par défaut
    Bonjour,
    J'essaye de faire sensiblement la même chose que toi car pour moi il s'agit d'un code c compilé avec code::blocks sous windows 7.
    Cependant je n'arrive pas à trouver le bon appel système pour tracer une courbe.
    J'ai essayé l'appel système que tu proposais en exemple mais chez moi cela ne semble pas marcher.
    Ai-je commis une erreur ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("wgnuplot graphique.txt -");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    contenu graphique.txt :
     
    set output 'graphique.png'
    set xlabel "Diametre";
    set ylabel "Recouvrement";
    set zlabel "Perte";
    set title "Parametre fixe épaisseur";
    set nocontour;
    set cntrparam levels 10;
    set surface;
    set view 60,30,1,1;
    splot sin(x*y);

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 24
    Points : 28
    Points
    28
    Par défaut
    j'ai oublié de préciser : en fait je dis que cela ne marche pas car quand je lance le programme ou l'appel système à la main dans un console MS-DOS rien ne semble se passer et aucun message d'erreur n'est retourné comme si tout c'était bien passé...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appelé une class dans le programme main
    Par nistelsof dans le forum Langage
    Réponses: 28
    Dernier message: 06/06/2007, 09h12
  2. Appel d'une dll (c++) dans un programme c++
    Par cout dans le forum C++
    Réponses: 2
    Dernier message: 01/06/2006, 14h52
  3. appel des fonctions d'un driver dans un programme en c
    Par richie25 dans le forum Windows
    Réponses: 5
    Dernier message: 10/01/2006, 08h27
  4. DLL Visual C++ appelée dans un programme Visual Basic
    Par marseillais57 dans le forum MFC
    Réponses: 7
    Dernier message: 21/07/2005, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo