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

GTK+ avec C & C++ Discussion :

aide pour developpez un outil d'affichage graphique


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de coax81
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 180
    Par défaut aide pour developpez un outil d'affichage graphique
    je souhaite développer un outils d'affichage des graphes , j'ai découvert GtkCurve , mais j'ai pas trouvé mon bonheur , donc je me suis lancé avec pixbuf,
    mais j'aimerai bien trouver des gens qui veulent développer avec moi cet outil afin de le rendre complet et professionnel .
    j'ai commencé par tracer les axes , et dessiner une équation du genre y=ax+b.

    mais j'aimerai aussi pouvoir écrire des chiffres sur les axes ...
    quelqu'un veux m'aider a développer cet outils et le rendre dispo pour tout le monde ?
    voila mon code actuel :

    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
     
    #include <gtk/gtk.h>
    #include <math.h>
     
    void dessin(guchar *pixel,guint width, guint height)
    {
     
        gint x,y,equation;
        gfloat j;
        guint n_coord;
     
     
        y=0;j=0;
     
    int n=40 ,i;
        for(x=20; x<=width-20; x++)
        {
            y=(height) - 20 ;
            if(y<=height)
            {
            n_coord = ((x*3)+(3*y*640));
            pixel[n_coord]      = 255;
            pixel[n_coord+1]    = 255;
            pixel[n_coord+2]    = 255;
            }
     
     
            y=20;
            n_coord = ((x*3)+(3*y*640));
            pixel[n_coord]      = 255;
            pixel[n_coord+1]    = 255;
            pixel[n_coord+2]    = 255;
     
     
            if(x==n)
            {
                n=n+20;
                for(i=0;i<=5;i++)
                {
                    y=(height) - 18-i ;
                    if(y<=height)
                    {
                        n_coord = ((x*3)+(3*y*640));
                        pixel[n_coord]      = 255;
                        pixel[n_coord+1]    = 255;
                        pixel[n_coord+2]    = 255;
                    }
     
                    y=18+i ;
                    n_coord = ((x*3)+(3*y*640));
                    pixel[n_coord]      = 255;
                    pixel[n_coord+1]    = 255;
                    pixel[n_coord+2]    = 255;
                }
            }
        }
     
    int m=40;
        for(y=20; y<=height-20; y++)
        {
            x=20 ;
            if(y<=width)
            {
                n_coord = ((x*3)+(3*y*640));
                pixel[n_coord] = 255;
                pixel[n_coord+1] = 255;
                pixel[n_coord+2] = 255;
            }
     
            x=width-20;
            n_coord = ((x*3)+(3*y*640));
            pixel[n_coord] = 255;
            pixel[n_coord+1] = 255;
            pixel[n_coord+2] = 255;
     
            if(y==m)
            {
                m=m+20;
     
                for(i=0;i<=5;i++)
                {
                     x=18+i ;
                    if(y<=width)
                    {
                        n_coord = ((x*3)+(3*y*640));
                        pixel[n_coord] = 255;
                        pixel[n_coord+1] = 255;
                        pixel[n_coord+2] = 255;
                    }
                    x=width-(18+i) ;
                    n_coord = ((x*3)+(3*y*640));
                    pixel[n_coord] = 255;
                    pixel[n_coord+1] = 255;
                    pixel[n_coord+2] = 255;
                }
            }
        }
    //*______________________________equation:_______________________________*
        for(x=20; x<=width-20; x++)
        {
            //equation de la droite en fesant un changement de variable x->x-10
           equation = (x-20) ;
     
           y=(height-20) - equation;
     
            if((y>=20) && (y<=height-20))
            {
            n_coord = ((x*3)+(3*y*640));
            pixel[n_coord] = 255;
            pixel[n_coord+1] = 158;
            pixel[n_coord+2] = 120;
     
            }
        }
    //*________________________________________________________________________*
     
    }
     
    int main(int argc, char **argv)
    {
        GtkWidget *pWindow;
        GtkWidget *graph;
        GdkPixbuf *pxgraph;
        guchar * pixel;
     
        // Initialisation des librairies GTK+
        gtk_init(&argc, &argv);
     
        // Création d'une fenêtre principale.
        pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(pWindow), "Fenêtre principale");
        gtk_window_set_default_size(GTK_WINDOW(pWindow), 640,480);
     
        pxgraph = gdk_pixbuf_new(GDK_COLORSPACE_RGB,FALSE,8,640,480);
        pixel = gdk_pixbuf_get_pixels(pxgraph);
     
        dessin(pixel, 640, 480);
     
        graph = gtk_image_new_from_pixbuf(pxgraph);
        gtk_container_add(GTK_CONTAINER(pWindow),graph);
     
        // Signaux associés à la fenêtre principale pour quitter.
        g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
        g_signal_connect(G_OBJECT(pWindow), "delete_event", G_CALLBACK(gtk_main_quit), NULL);
     
     
        // Boucle principale GTK+
        gtk_widget_show_all(pWindow);
        gtk_main();
     
        return 0;
    }

    j'attend vos propositions et vos critiques et vos conseils ...
    merci a tout le monde ...

  2. #2
    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 : 48
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Moi je n'est franchement pas le temps mais si tu veux vraiment le faire, le mieux serait éventuellement de créer directement un widget ... ou par la suite une fois tes fonctions bien solides et que le tout fonctionne relativement correctement, voici un tutoriel pour créer ses propres widgets: Créer son widget GTK+ en Langage C (un jour quand j'aurais du temps je le mettrais à jour....)

    Par contre, as-tu testé GtkPlot avant de te lancer dans cette tâche qui est quand même assez longue ... ?
    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 !

  3. #3
    Membre confirmé Avatar de coax81
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 180
    Par défaut
    c'est du GTKMM ou GTK+ GtkPlot ?
    j'ai pas trouvé dans le manuel Gtkplot, j'ai pas encore éssayé cet outil .

    est ce qu'il faut installer une nouvelle librairie pour cela ?

  4. #4
    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 : 48
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par coax81
    c'est du GTKMM ou GTK+ GtkPlot ?
    j'ai pas trouvé dans le manuel Gtkplot, j'ai pas encore éssayé cet outil .

    est ce qu'il faut installer une nouvelle librairie pour cela ?
    Normalement c'est au moins du GTK+ mais certainement aussi disponible sur Gtkmm .. ca fait parti des GtkExtra il me semble
    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 !

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 180
    Par défaut
    il faut que j'installe gtkextra alors ?
    je met ou cet bibliothèque dans mon arborecence ?
    sachant que je développe sous windows ?

  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 : 48
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par coax81
    je met ou cet bibliothèque dans mon arborecence ?
    sachant que je développe sous windows ?
    Bin là où tu met le reste, les lib et *.a etc... dans le répertoire lib, les include, je suppose dans un répertoire GtkExtra, faut voir, là je peut pas trop t'aider je ne suis pas sous Windows
    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 !

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/05/2014, 09h45
  2. Réponses: 6
    Dernier message: 05/06/2012, 15h19
  3. besoin d'aide pour developpez avec zope
    Par falifalibe dans le forum Zope
    Réponses: 1
    Dernier message: 08/03/2009, 10h36
  4. Réponses: 3
    Dernier message: 17/08/2007, 17h48

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