Tracer des graphiques avec la librairie pgplot.h - exemple du pendule

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 295 fois - Téléchargée 34 fois

Contenu du snippet

La librairie PGPLOT.h permet de tracer tout simplement des graphiques.
Pour illustrer une des utilisations de pgplot, c'est décider de reprendre mon programme
de résolution d'equation differentielle par la methode d'euler et d'y rajouter
la fonction pour tracer directement les graphiques.

Vous pouvez télécharger la librairie PGPLOT.H à l'adresse suivante:
http://www.astro.caltech.edu/~tjp/pgplot/

Source / Exemple :


#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include "cpgplot.h"

#define g 9.81

int main()
{
    float tau,w,l;
    int nit,i;

    float tabt[1000],tabx[1000],taby[1000];
    int npoints;
    FILE *fichier;

    float x;
    float y;
    float xmin =0., xmax=10.0, ymin =-0.3,ymax=0.3;

    x=0.25; /* conition initiale sur x */

    y=0; /* Conditions initiale */
    i=0;
    nit=1000; /* nombre d'itérations */

    tau=0.01; /* pas d'intégration */

    l=0.2; /* longueur du fil */

    w=sqrt(g/l); /* Omega0 */

    fichier=fopen("resultat.txt","w");
    for(i=1;i<=nit;i++)
    {
        x=x+tau*y;
        y=y+tau*((-w*w)*sin(x));
        fprintf(fichier,"%f %lf %lf\n",i*tau,x,y);
    }
    fclose(fichier);
    fichier=fopen("resultat.txt","r");
    /* On stocke chaque colonne du fichier dans une variable
    de type tableau */
    for (i = 1; i<= nit; i++)

        {
        fscanf (fichier, "%f %f %f \n" ,&tabt[i],&tabx[i],&taby[i]);
        }
    fclose(fichier);

     if (cpgopen("?") < 1) /* ouverture de pgplot */
     return 1;

     npoints=1000;
     cpgenv(xmin,xmax,ymin,ymax,0,0); /* definition des axes */
     cpglab("t", "x", "PGPLOT Graph: Evolution du pendule"); /* titre */
     cpgsci(2); /* couleur du traçage "rouge" */
     cpgline(npoints,tabt,tabx); /* on trace */

     cpgenv(-0.3,0.3,-2.0,2.0,0,0);
     cpglab("x", "y", "PGPLOT Graph: Espace des Phases");
     cpgsci(2);
     cpgline(npoints,tabx,taby);
     cpgclos();

    return 0;
}

A voir également

Ajouter un commentaire Commentaires
Messages postés
2
Date d'inscription
mercredi 30 novembre 2011
Statut
Membre
Dernière intervention
22 décembre 2011

tu peux faire des traces avec graphics.h car cgplot la n'es pas facile a trouver
Messages postés
4
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
21 octobre 2008

esk vous pouvez me donnez un code source ki affiche une pendule elastique et interactive et aussi le code source du machine d'atwood interactif peut importe le langage mais avec code souce( de preference s'il es en Flash cs3)merci d'avance a toussssssssssssssss
Messages postés
3
Date d'inscription
mercredi 21 janvier 2009
Statut
Membre
Dernière intervention
8 juillet 2006

j attend votre reponse
Messages postés
3
Date d'inscription
mercredi 21 janvier 2009
Statut
Membre
Dernière intervention
8 juillet 2006

slt,
ché pa comment installer ta lib
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
31 mars 2015
2
Salut,
Il faut télécharger le package en entier et l'intaller.
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.