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

C# Discussion :

Faire des graphes (Noeuds, arètes) en c#


Sujet :

C#

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Faire des graphes (Noeuds, arètes) en c#
    Bonjour,

    Je voudrais savoir s'il existait actuellement une librairie en c# capable de réaliser des graphes : au sens où l'on peut créer des noeuds, des arètes et interagir avec ceux-ci.
    Mes recherches sur le web ont été infructueuses et je suis un peu surpris de ne pas trouver une librairie du style JGraph (Java) pour ceux qui connaissent ... mais en c#

    Je vous remercie d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    ya une interface qui existe pour ZGraph ou JGraph... mais c'est de l'open Source et l'avancement n'est pas encore achevé

    Sinon, je crois que Ilog View vient de sortir une librairie qui pourrait ressembler à ton besoin (voir les pub dans le fanzine programmez, special .Net)

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    salut

    ya une interface qui existe pour ZGraph ou JGraph... mais c'est de l'open Source et l'avancement n'est pas encore achevé

    Sinon, je crois que Ilog View vient de sortir une librairie qui pourrait ressembler à ton besoin (voir les pub dans le fanzine programmez, special .Net)

    The Monz, Toulouse
    N'est ce pas plutôt ZedGraph dont tu parles ?
    Concernant Ilog View, ca ressemble en effet à ce que je cherche (en tout cas pour la partie création de graphe) mais c'est payant. Et je chercherais quelque chose plutôt open source, mais bon c'est déjà ça.
    Je vais peut-être le faire moi-même mais j'ai pas beaucoup de temps.
    Si quelqu'un a déjà commencé à programmer la gestion de graphe avec des objets graphics, merci de me contacter .
    Quoi qu'il en soit, merci pour ta réponse rapide theMonz.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    SVP, personne a d'autres infos ?

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    Moi, j'avais commencé une librairie pour faire un truc un peu dans le genre

    Le principe :

    1 panel ou je peux ajouter des objets... et chaque objet implémente une interface qui définit les méthodes de base (genre Region, Location , size, Render() (ou dans le render, je passe le render du "container (du panel))

    Ensuite, je gérais le Z-Order....

    Après, une fois que tu as mis en place un tel mécanisme, j'ai juste une question de temps pour créer les objets qui correspondront au dessin que tu en attends avec la gestion de event et autre (je gérais souris que je refletais à la shape se trouvant sous moi

    Perso... Si j'avais à "refaire" un tel composant, je crois que je me tournerais vers les UIElement(2D) ou (3D) de WPF.. car tu vas pouvoir trouver dans WPF (.Net 3.0 / 3.5) un composant qui te permet de définir toi meme le rendu de ton composant, et ce composant, du fait qu'il hérite de UIElement va t'offrir les fonctions repondant aux Mouses et keyboard events

    (en gros, c'est une vision d'un Control sans que ca soit un Control)...

    Sinon, tu peux aussi faire des UserControl qui correspondraient à tes besoins, mais je trouve cela "plus" lourd à gérer car si tu veux par exemple créer une fleche entre 2 "usercontrol", ca va être bcp plus galère à gérer.. (d'ou la création de ma librairie initialement)

    The Monz, Toulouse

    [EDIT]

    Juste pour info, on trouve des exemples ressemblant à ce que j'avais réalisé sous code project et en C#...
    Après, reste à ta charge de "créer" les composants" au look désiré et aux comportements adéquates...

    Conceptuellement, faire un tel truc est "assez" simple... mais prend "bcp" de temps par rapport aux comportements de chaque objet à créer

    Bon courage
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    salut

    Moi, j'avais commencé une librairie pour faire un truc un peu dans le genre

    Le principe :

    1 panel ou je peux ajouter des objets... et chaque objet implémente une interface qui définit les méthodes de base (genre Region, Location , size, Render() (ou dans le render, je passe le render du "container (du panel))

    Ensuite, je gérais le Z-Order....

    Après, une fois que tu as mis en place un tel mécanisme, j'ai juste une question de temps pour créer les objets qui correspondront au dessin que tu en attends avec la gestion de event et autre (je gérais souris que je refletais à la shape se trouvant sous moi

    Perso... Si j'avais à "refaire" un tel composant, je crois que je me tournerais vers les UIElement(2D) ou (3D) de WPF.. car tu vas pouvoir trouver dans WPF (.Net 3.0 / 3.5) un composant qui te permet de définir toi meme le rendu de ton composant, et ce composant, du fait qu'il hérite de UIElement va t'offrir les fonctions repondant aux Mouses et keyboard events

    (en gros, c'est une vision d'un Control sans que ca soit un Control)...

    Sinon, tu peux aussi faire des UserControl qui correspondraient à tes besoins, mais je trouve cela "plus" lourd à gérer car si tu veux par exemple créer une fleche entre 2 "usercontrol", ca va être bcp plus galère à gérer.. (d'ou la création de ma librairie initialement)

    The Monz, Toulouse

    [EDIT]

    Juste pour info, on trouve des exemples ressemblant à ce que j'avais réalisé sous code project et en C#...
    Après, reste à ta charge de "créer" les composants" au look désiré et aux comportements adéquates...

    Conceptuellement, faire un tel truc est "assez" simple... mais prend "bcp" de temps par rapport aux comportements de chaque objet à créer

    Bon courage
    Merci beaucoup pour cette réponse !
    J'ai commencé à créer mes usercontrols, dans la mesure ou ce que je veux faire est tres simple (les noeuds, arètes etc ... n'ont pas besoin d'etre deplacables, et la gestion du layout est aisé puisqu'il s'agit de coordonnées cartésiennes sur une carte --> en fait il s'agit de représenter des tournées de vehicules ).
    Pour les noeuds j'ai deja quelquechose de sympa qui herite de Button et dont je redefinit la methode paint....
    (C'est un peu du bricolage, mais bon)
    Pour les arètes j'ai peur que ce soit encore plus de bricolage !
    (Concernant WPF, j'ai dejà programmé une bonne partie de l'application et ca m'embeterait de devoir faire du WPF alors que je ne connait pas vraiment comment ca marche ...)

    Tu me parles de sources qui existent sur code project, peux-tu me donner les liens correspondants ? (je ne les trouve toujours pas...)

    Ou alors peux-tu me passer la librairie que tu as créé ? (je te communiquerai mon mail en MP) Pour que j'ai une autre approche moins bricolage...

    Je te remercie par avance de ton suivi.

    Thibaud, Paris

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    je n'ai plus les liens sur code project, mais bon, dans la rubrique, C#, tu dois pouvoir trouver quand meme

    Sinon, ma librairie, beh, pour le moment, je prefère ne "pas" trop la diffuser

    Par contre..., on pourrait monter un projet autour...

    Actuellement , pour info.. ma librairie gère des Shapes et ensuite, dans la méthode Render (overridable), tu gères toi même le rendu que tu veux lui affecter...

    J'ai créer en 10 minutes une nouvelle shape qui embarque un control utilisateur... ainsi, en me basant sur control.DrawToBitmap du control, j'affiche son image quand il n'est pas sélectionné.. et quand il est, je l'ajoute à la collection de control de mon panel... et donc, devient actif.... et dès qu'il est "déselectionné", je le rends inactif... ainsi, je peux fournir quasiment n'importe quel comportement...

    Il faudrait que je "nettoie" un peu le code de cette librairie par ce que j'ai fait bcp de test avec et que j'ai fait parfois cela à l'arrache...

    Donc à voir... effectivement

    Cela dit, l'interet de ma librairie est de pouvoir gérer aussi des images, les faire tourner, etc... de gérer des polylines.. etc...

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    salut

    je n'ai plus les liens sur code project, mais bon, dans la rubrique, C#, tu dois pouvoir trouver quand meme

    Sinon, ma librairie, beh, pour le moment, je prefère ne "pas" trop la diffuser

    Par contre..., on pourrait monter un projet autour...

    Actuellement , pour info.. ma librairie gère des Shapes et ensuite, dans la méthode Render (overridable), tu gères toi même le rendu que tu veux lui affecter...

    J'ai créer en 10 minutes une nouvelle shape qui embarque un control utilisateur... ainsi, en me basant sur control.DrawToBitmap du control, j'affiche son image quand il n'est pas sélectionné.. et quand il est, je l'ajoute à la collection de control de mon panel... et donc, devient actif.... et dès qu'il est "déselectionné", je le rends inactif... ainsi, je peux fournir quasiment n'importe quel comportement...

    Il faudrait que je "nettoie" un peu le code de cette librairie par ce que j'ai fait bcp de test avec et que j'ai fait parfois cela à l'arrache...

    Donc à voir... effectivement

    Cela dit, l'interet de ma librairie est de pouvoir gérer aussi des images, les faire tourner, etc... de gérer des polylines.. etc...

    The Monz, Toulouse
    Ok, je comprends tout à fait pour ta librairie.
    Je vais essayer de tenter la piste WPF... et voir un peu ce que ca peut m'apporter.
    Je vais chercher plus sérieusement sur code project entendu.

  9. #9
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    ok désolé

    Sinon, c'est vraiment pas compliqué de ce faire une telle librairie...

    Grosso modo, je suis parti d'un panel... auquel j'ai ajouté des propriétés et des méthodes pour ajouter des Shapes (classe de base BaseShape).

    Ensuite, surcharge du OnPaint() pour appeler la méthode "Render" de chaque Shape....

    Et au final, une surcharge des evenemnts pour la souris pour tester si la souris se trouve dans la region d'une shape pour lui transmettre l'event de la souris et la selectionner eventuellement

    C'est vraiment pas compliqué à faire.

    LE seul aspect, un peu long, est l'écriture d'un certains nombre de shape correspondants à ton besoin

    (cela dit, j'ai fait une shape de type polyline, qui simplifie grandement les choses

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Merci pour ton aide TheMonz,

    J'ai effectivement cherché avec un peu plus de soin sur codeProject, et j'ai trouvé. (A vrai dire je pensais qu'une telle librairie, serait dans les premiers résultats d'une recherche Google, mais pas du tout )
    Donc merci, pour m'avoir correctement dirigé !
    La librairie s'appelle Netron. Et à mon avis elle est très bien pensé.

Discussions similaires

  1. Faire des graphes avec wxPython
    Par dedesite dans le forum wxPython
    Réponses: 6
    Dernier message: 26/02/2008, 21h42
  2. librairie pour faire des graphes
    Par elekis dans le forum 2D
    Réponses: 6
    Dernier message: 26/11/2007, 18h51
  3. Réponses: 2
    Dernier message: 13/09/2007, 14h12
  4. Composant permettant de faire des graphes sous Excel
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 25/10/2005, 22h13
  5. [SWT] Api pour faire des graph ?
    Par bawan dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 05/09/2005, 13h13

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