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

Bibliothèques Discussion :

tracage d'une courbe


Sujet :

Bibliothèques

  1. #1
    Membre actif
    Inscrit en
    Février 2007
    Messages
    406
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 406
    Points : 207
    Points
    207
    Par défaut tracage d'une courbe
    salut à tous,
    pouvez vous me dire comment je peux faire du graphique avec le c, je desire tracer une courbe a partir d'un tableau bidimentionnel, je sais que le sujet a déja été posé, mais je cherche un truc simple ,si vous avez des liens(cours etc..) ca serai sympa.
    merci

  2. #2
    Membre expérimenté
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 011
    Points : 1 375
    Points
    1 375
    Par défaut
    Tu veux le faire en mode texte ou graphique ?

  3. #3
    Membre actif
    Inscrit en
    Février 2007
    Messages
    406
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 406
    Points : 207
    Points
    207
    Par défaut
    en mode graphique si c'est possible

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    alors ce ne sera pas en C.

    Le langage C n'est pas un langage de programmation graphique. Le C ne sait pas ce qu'est un écran, une fenêtre, un pixel, une couleur.

    Par contre, plusieurs langages de programmation graphiques s'appuient sur du C (GTK, X, OpenGL, etc..)
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Points : 188
    Points
    188
    Par défaut
    tu as des outils spécifiques à borland qui permette de le faire

    regarde dans graphics.h

    il te faudra aussi le fichier egavga.bgi


    il faut intialiser l'écran avec ce genre de fonction :

    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
    void initialisation_graph()
    {
    	int graphdriver = VGA, graphmode = VGAHI, errorcode;
     
    	/* INITIALISATION ECRAN */
     
    	initgraph (&graphdriver, &graphmode, "");
     
     
    	/* LECTURE DU RESULTAT DE L'INITIALISATION  ET MESSAGE D'ERREUR */
     
    	errorcode = graphresult();
     
    	if (errorcode != grOk)
    	{
    		printf("Erreur graphique : %s\n", grapherrormsg(errorcode));
    		printf("Appuyer sur une touche pour quitter");
     
    		getch();
    		exit(1);
    	}
    }

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    void tracage_courbe(h_pas, v_pas)
    {
    	float i, j;
    	float x1, x2;
    	double j1, j2, y1, y2;
    	int k, l;
     
    	/* TRACAGE DU REPERE */
     
    		/* FOND BLANC */
     
    	bar (0, 0, 639, 479);
     
     
    		/* AXES */
     
    	setcolor(7);
     
     
       	/* AXE DES ABCISSES */
     
    	line (0, 240, 639, 240);
     
     
    			/* AXE DES ORDONNEES */
     
    	line (320, 0, 320, 479);
     
     
    			/* GRADUATION AXE DES ABCISSES */
     
    	for (i = 0; i <= 639; i = i + h_pas)
    		line (i, 239, i, 241);
     
     
    			/* GRADUATION AXE DES ORDONNEES */
     
    	for (j = 0; j <= 479; j = j + v_pas)
    		line (319, j, 321, j);
     
     
    	/* SYNCHRO INITIALISATION TRACAGE */
     
    	for (k = 0; k <= 7; k++)
    		delay(30000);
     
     
    	/* TRACAGE DE LA COURBE */
     
    	setcolor(1);
    	for (i = 0; i <= 639; i = i + 1)
    	{
    		x1 = (i - 320) / h_pas;
    		x2 = (i + 1 - 320) / h_pas;
    		y1 = image (x1) * v_pas;
    		y2 = image (x2) * v_pas;
     
    		if (((240 - y1 > 0) && (240 - y1 <639)) || ((240 - y2 >0) && (240 - y2 < 639)))
    		{
    			delay(10000);
    			line (i, 240 - y1, i + 1, 240 - y2);
    		}
    	}
    }
    c'est juste un exemple.

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par souviron34
    Par contre, plusieurs langages de programmation graphiques s'appuient sur du C (GTK, X, OpenGL, etc..)
    Outch attention pour les débutant ou non initiés .... GTK+, X etc.. ne sont pas des langages de programmation mais des bibliothèques de fonctions pour étendre les possibilités des langages !

    Donc oui c'est possible en C mais avec une bibliothèque permettant de gérer le côté graphique ce que le langage ne gère pas directement. GTK+ est tout indiqué car il permet entre autre de créer des fenêtres ce qu'il te faudra de toutes manières !

    Il existe par ailleurs dans GTK+ un widget pour ca justement GtkCurve
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  7. #7
    Membre averti
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Points : 387
    Points
    387
    Par défaut
    Hello,

    Citation Envoyé par ranell
    salut à tous,
    pouvez vous me dire comment je peux faire du graphique avec le c, je desire tracer une courbe a partir d'un tableau bidimentionnel, je sais que le sujet a déja été posé, mais je cherche un truc simple ,si vous avez des liens(cours etc..) ca serai sympa.
    merci
    Pourquoi ne pas utiliser Gnuplot ? Nicolas Devillard a développé une API en C qui correspond tout à fait à ton besoin :

    http://ndevilla.free.fr/gnuplot/
    http://ndevilla.free.fr/gnuplot/gnuplot_i/index.html

    A+

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Foobar1329
    ... Nicolas Devillard a développé une API en C qui correspond tout à fait à ton besoin ...
    euh..... Rendons à César ce qui appartient à César....

    Nicolas Devillard n'a pas développé Gnuplot... De très très loin.. Il n'y a même pas participé, je pense.. Il a fait un site pointant vers différentes installations de Gnuplot. C'est très largement différent.

    Gnuplot, comme son nom l'indique, est un projet Gnu , comme le compilateur gcc.... (http://www.gnu.org/gnu/thegnuproject.html ou http://fr.wikipedia.org/wiki/GNU)

    Pour Gnuplot, voici quelques pointeurs :

    http://www.gnuplot.info/docs/gnuplot.html

    http://www.gnuplot.info/

    dont voici le copyright :

    1 /*[
    2 * Copyright 1986 - 1993, 1998, 2004 Thomas Williams, Colin Kelley
    3 *
    4 * Permission to use, copy, and distribute this software and its
    5 * documentation for any purpose with or without fee is hereby granted,
    6 * provided that the above copyright notice appear in all copies and
    7 * that both that copyright notice and this permission notice appear
    8 * in supporting documentation.
    9 *
    10 * Permission to modify the software is granted, but not the right to
    11 * distribute the complete modified source code. Modifications are to
    12 * be distributed as patches to the released version. Permission to
    13 * distribute binaries produced by compiling modified sources is granted,
    14 * provided you
    15 * 1. distribute the corresponding source modifications from the
    16 * released version in the form of a patch file along with the binaries,
    17 * 2. add special version identification to distinguish your version
    18 * in addition to the base release version number,
    19 * 3. provide your name and address as the primary contact for the
    20 * support of your modified version, and
    21 * 4. retain our contact information in regard to use of the base
    22 * software.
    23 * Permission to distribute the released version of the source code along
    24 * with corresponding source modifications in the form of a patch file is
    25 * granted with same provisions 2 through 4 for binary distributions.
    26 *
    27 * This software is provided "as is" without express or implied warranty
    28 * to the extent permitted by applicable law.
    29 ]*/
    gnuplot
    An Interactive Plotting Program


    Version 4.2





    Thomas Williams & Colin Kelley






    Major contributors (alphabetic order):


    Hans-Bernhard Bröker
    John Campbell
    Robert Cunningham
    David Denholm
    Gershon Elber
    Roger Fearick
    Carsten Grammes
    Lucas Hart
    Lars Hecking
    Thomas Koenig
    David Kotz
    Ed Kubaitis
    Russell Lang
    Timothée Lecomte
    Alexander Lehmann
    Alexander Mai
    Ethan A Merritt
    Petr Mikulík
    Carsten Steger
    Tom Tkacik
    Jos Van der Woude
    Alex Woo
    James R. Van Zandt
    Johannes Zellner
    Copyright (C) 1986 - 1993, 1998, 2004 Thomas Williams, Colin Kelley
    Copyright (C) 2004 - 2007 Various authors
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 80
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par souviron34
    euh..... Rendons à César ce qui appartient à César....
    Nicolas Devillard n'a pas développé Gnuplot...
    Ben oui, ce n'est jamais ce qu'a dit Foobar1329 et ses propos ne m'ont même pas semblés ambigus, il a dit une API en C, la distinction est claire, non ?

    Citation Envoyé par ranel
    je desire tracer une courbe a partir d'un tableau bidimentionnel, je sais que le sujet a déja été posé, mais je cherche un truc simple
    Comme il a été dit, il te faut une bibliothèque graphique et qui soit disponible sur ta plateforme. En fait ton problème est assez vague, tu disposes d'un nuage de points et il existe plusieurs méthodes mathématiques pour "transformer" ça une courbe (lissage, interpolation, moindres carrés, etc). Sinon, si tu ne connais pas GTK, ça me paraît être un gros investissement juste pour tracer une courbe 2D. Je te conseillerais bien la SDL, c'est assez facile à apprendre et il y a pas mal de tuto (anomaly sur developpez). Et il y a sans doute des bibliothèque plus simples encore pour faire une tâche aussi élémentaire. L'idée d'interfacer du C avec gnuplot me semblait intéressante mais je n'ai jamais testé.

  10. #10
    Membre actif
    Inscrit en
    Février 2007
    Messages
    406
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 406
    Points : 207
    Points
    207
    Par défaut
    bonsoir,
    merci bcp pour vos reponses, en faite, en language c ,j'ai etudié les fichiers , les structure de donnée (pile file, liste...)ce qui n'a strictement rien a voir avec mon probleme.
    je vais essayer d'en savoir plus sur le sdl et gnuplot, mais je croyai pas que c'été aussi complexe ...
    si vous avez d'autre idée n'hesitez pas.
    merci encore

  11. #11
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Points : 188
    Points
    188
    Par défaut
    la méthode que je t'ai donné permet de faire ça, à toi de rajouter un delay pour voir le tracé de la courbe

  12. #12
    Membre actif
    Inscrit en
    Février 2007
    Messages
    406
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 406
    Points : 207
    Points
    207
    Par défaut
    merci à tous pour votre aide

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/09/2014, 23h08
  2. Tracage d'une courbe sous linux
    Par rare1 dans le forum Linux
    Réponses: 13
    Dernier message: 25/10/2006, 08h54
  3. [VBA-E] recuperation de l'equation d'une courbe de tendance
    Par miotte83 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/09/2005, 01h25
  4. Resconstitution d'une courbe
    Par Mertyl dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 27/05/2005, 07h39

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