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

Fortran Discussion :

[Fortran 77] Tracer un graphique


Sujet :

Fortran

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut [Fortran 77] Tracer un graphique
    Bonjour

    Voilà, mon programme avance petit a petit et je suis à nouveau bloqué.
    En effet, j'aimerais pouvoir "tracer" un graphique.
    En fait, j'ai une fonction qui calcule plein de points, stoqués dans un fichier txt, et j'aimerais pouvoir faire une fonction permettant de tracer tout ces points pour visualiser ma fonction. Cela est-il possible ??
    Si oui, faut-il que j'utilise mon fichier txt avec tout les points, ou alors on peut faire directement avec ma fonction mathématique (avec des ln et exp) ?

    Merci d'avance

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    donc voila j'ai trouvé une bibliotheque PSPLOT qui permet de 'dessiner'
    j'ai donc tester, j'arrive a faire des traits, triangles ...

    maintenant je voudrais pouvoir prendre des points dans un fichier texte, et tracer des droites entre ces points, le but etant donc de faire un graphique de fonction

    j'ai donc ecris cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
           dimension Xp1(2)
           dimension Yp1(2)
           dimension X(1), Y(1)
           dimension Xd(1),Yd(1)
    	call newdev('teststeph.ps',12)
           call PSINIT(.true.)
    	call plot(0.,0.,-3)
     
           Xd(1)=0
           Yd(1)=0
     5      open(99,file="test1.txt",status='old')
           read(99,*,END=10,ERR=10) X, Y
     
           data Xp1/ Xd(1), X(1) /
           data Yp1/ Yd(1), Y(1) /
           call drwcrv(Xp1, Yp1, 2, .02, .false.)
           Yd(1)=Y(1)
           Xd(1)=X(1)
     
           goto 5
     
     
    10    write(*,'(a,$)') 'Entrez :'
           read(*,*) 
           call plotnd
     
           end
    mais il y a des bugs et je ne vois pas du tout pourquoi (j'ai essayé de mettre X et Y en real plutot que dimension mais j'ai la meme chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    graph.f: In program `MAIN__':
    graph.f:4: 
              dimension Xd(1),Yd(1)
                        1
    graph.f:14: (continued):
              data Xp1/ Xd(1), X(1) /
                        2
    Invalid declaration of or reference to symbol `xd' at (2) [initially seen at (1)]
    graph.f:3: 
              dimension X(1), Y(1)
                        1
    graph.f:14: (continued):
              data Xp1/ Xd(1), X(1) /
                               2
    Invalid declaration of or reference to symbol `x' at (2) [initially seen at (1)]
    graph.f:4: 
              dimension Xd(1),Yd(1)
                              1
    graph.f:15: (continued):
              data Yp1/ Yd(1), Y(1) /
                        2
    Invalid declaration of or reference to symbol `yd' at (2) [initially seen at (1)]
    graph.f:3: 
              dimension X(1), Y(1)
                              1
    graph.f:15: (continued):
              data Yp1/ Yd(1), Y(1) /
                               2
    Invalid declaration of or reference to symbol `y' at (2) [initially seen at (1)]
    pouvez vous m'aider ???
    merci d'avance

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Points : 1 346
    Points
    1 346
    Par défaut
    ouf...

    Avant la ligne 1, tu ajoute la ligne "implicite none", à moins que ton compilateur (f77?) ne le supporte pas.

    Les suivantes : les "dimension" sont à mon avis un archaïsme. Utilise des real ou integer (ex: real XP1(2))

    Étiquette 5 : devrait être sur le read, pas sur le open. Présentement, tu essaie de réouvrir à chaque cycle de la boucle...

    Énoncés "data" : au minimum, elles ne sont pas au bon endroit. Je suspecte pluôt que ça ne fait pas ce que tu veux. Un data, ça sert à donner une valeur initiale à une variable, lors du lancement du programme. Tu semble plutôt vouloir assigner Xd(1) à Xp1(1) et X(1) à Xp1(2)...

    Ça ne règlera pas tout, mais c'est dans la bonne direction.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    merci pour ta réponse.

    le implicit none est bien géré par le f77

    le data je l'utilise juste car la commande drwcv est la suivante :

    PURPOSE: DRWCRV draws a solid curve.

    SYNTAX: CALL DRWCRV (XARR, YARR, NPTS, THK, CLOSER)

    ARGUMENTS:

    XARR Array containing the x-coordinates of the points to be connected.

    YARR Array containing the y-coordinates of the points to be connected.

    NPTS Number of points in the curve.

    THK Thickness of the curve. If THK = 0., the current linewidth is used.

    CLOSER Logical variable. If CLOSER = .TRUE., the last point in the data arrays is connected to the first point, i.e. the curve is closed; otherwise, the curve is open.
    mais si il y a une autre bibliotheque qui permet de faire des tracés qui est plus simple je suis preneur

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Bonjour,

    Je confirme que tu utilises mal l'instruction 'data' qui ne sert qu'à initialiser des variables en début de programme. Utilises des bons vieux "=" !

    Ehouarn

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    ok c'est bon ! en effet les data ne m'aidaient pas !!!
    j'ai donc crée un tableau Yp1 et Xp1 de 2 valeurs : Xd et X, Yd et Y
    puis ca marche

    merci de votre aide

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    bon bin finalement j'ai encore un probleme !!
    je voulais savoir comment faire pour definir une echelle, ou la taille de mon graph avec la lib psplot, car la je trouve" pas.
    en fait la je dessine a peine 1/3 de ma courbe ...

  8. #8
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Malheureusement, il va falloir que tu lises la documentation de cette bibliotheque...

    Edit: j'ai jete un oeil et ta bibliotheque n'est pas un plotter type GNUplot. Il faut que tu fasses tes routines de plus haut niveau qui choisissent l'echelle des axes de ton graphe, puis tu peux tracer ta courbe. Cela ne se fait pas automatiquement.

  9. #9
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut Tracer un graphique
    Salut!

    Question préliminaire: veux-tu afficher ton graphique à l'écran ou le veux-tu sur papier, par exemple incorporé dans un rapport?

    Dans ce dernier cas, j'utilise une méthode qui peut sembler compliquée, mais qui donne d'excellents résultats: comme j'écris mes rapports avec LaTeX, et que je génère tous mes dessins vectoriels à l'aide de l'outil PSTricks, il me suffit de générer dans mon programme Fortran un fichier muni de l'extension .tex qui contient toute la description de mon graphique en code PSTricks. Ensuite, je n'ai plus qu'à l'incorporer dans mon rapport par l'instruction \input{...}

    J'avoue que, la première fois, le déverminage n'est pas évident, mais ça marche!

    Bien du plaisir.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

Discussions similaires

  1. Problème pour tracer un graphique en 3D
    Par boula dans le forum MATLAB
    Réponses: 2
    Dernier message: 24/08/2007, 08h26
  2. Tracer un graphique 3D avec f(x,y) inconnue
    Par StitchP dans le forum MATLAB
    Réponses: 4
    Dernier message: 22/08/2007, 13h54
  3. tracer un graphique
    Par zemontana dans le forum Windows Forms
    Réponses: 3
    Dernier message: 28/12/2006, 09h37
  4. Tracer un graphique
    Par Papagei dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/12/2005, 16h43
  5. Réponses: 6
    Dernier message: 22/11/2005, 17h08

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