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, systèmes et outils C Discussion :

[Graphviz] Faire correspondre un arrowhead avec un arrowtail


Sujet :

Bibliothèques, systèmes et outils C

  1. #1
    Invité
    Invité(e)
    Par défaut [Graphviz] Faire correspondre un arrowhead avec un arrowtail
    Bonjour à tous,

    Ce que je cherche à faire :
    Dans un graphe dessiné à l'aide de la bibliothèque Graphviz, faire correspondre la tête d'une flèche avec la queue d'une autre flèche, sur un nœud donné. Le nœud est la cible de la première flèche et est la base de la seconde. Les deux flèches sont liées et forment un chemin continu :

    Nom : graphe.png
Affichages : 147
Taille : 28,2 Ko

    Ce que j'ai trouvé jusqu'ici :
    Utiliser par exemple la propriété samehead pour faire correspondre les têtes de deux flèches, puis inverser la direction de l'une des flèches à l'aide de la propriété dir=back.

    Deux questions :
    - N'existe-t-il pas un moyen plus simple, moins détourné ?
    - Les propriétés samehead et sametail agrègent-elles les têtes et les queues des flèches sur les "compass ports" d'un nœud (ie. les 8 points cardinaux n, ne, e, se, s, sw, w, nw) ou permettent-elles de les faire correspondre n'importe où sur le contour du nœud ?

    Merci.

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Je ne connais pas graphviz, mais n'y a-t-il pas une documentation ou un site officiel qui puisse te renseigner?

    Cela dit, pour mon expérience sur les graphes, on a plutôt tendance à mettre les extrémités en oppositions: les degrés entrant se groupent en un point, et les degrés sortant se groupent au point diamétralement opposés du nœud.
    Cela donne des graphes om les nœuds sont "dans le flux".

    J'imagine donc que ton problème n'est pas forcément codé.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Merci pour ta réponse, dont je ne comprends pas tout mais peu importe.

    Il existe bel et bien une doc officielle Graphviz, d'où est tirée ma solution avec samehead et dir=back.

    Je maintiens que j'ai impérativement besoin de flèches qui suivent le comportement décrit dans mon premier message. C'est indépendant de ma volonté, c'est pour coller à une norme de représentation.

    Merci.

  4. #4
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Je ne sais pas que te dire. à tout hasard, cherche avec les mots-clés graphviz et "<nom de ta norme>"
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  5. #5
    Invité
    Invité(e)
    Par défaut
    Cette norme n'est ni connue ni répandue, je travaille sur un projet scientifique.
    En tout cas, si un connaisseur de Graphviz qui passe par là connait au moins la réponse à ma deuxième question, je le remercie d'avance.
    Merci.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Apparemment en utilisant samehead et sametail sur deux flèches devant représenter un "rebond" sur un nœud (tel que décrit dans mon premier message), on peut faire facilement coïncider la tête de la première avec la base de la seconde.
    Le problème alors est que les tangentes ne sont plus correctes du tout : les flèches ne semblent plus pointer vers le (ou partir du) nœud commun. Graphiquement c'est comme si les flèches arrivaient sur (ou partaient d') un point sans dimension, et non plus sur un nœud elliptique ou rond. Donc l'aspect "rebond" tel que montré dans mon premier message est perdu.
    Y a-t-il un moyen de contraindre les flèches à pointer vers le center du nœud plutôt que vers le point de contact à la surface du nœud ?

Discussions similaires

  1. [XL-2003] Faire correspondre une colonne avec une autre et copié les données dans la bonne colonne
    Par mairiemeudon dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 01/06/2010, 15h31
  2. Réponses: 2
    Dernier message: 04/08/2009, 19h53
  3. Réponses: 5
    Dernier message: 04/02/2008, 00h53
  4. Réponses: 1
    Dernier message: 21/02/2007, 01h29
  5. [VB6][active x] faire du multi-thread avec vb
    Par pecheur dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/05/2003, 12h01

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