Page 2 sur 2

Re: gm_graphes

MessagePosté: Jeudi 17 Novembre 2011, 23:57
par GMaths
gourdan a écrit:Est-ce qu'on peut modifier juste sur un arc ? où il y a le problème de croisement.

Sauf que dans l'exemple... tu as trois problèmes de ce genre si tu mets 0.5... donc je ne sais pas si c'est plus intéressant :

Code: Tout sélectionner
import gm_graphes;
size(7cm,0);
stylegraphe gourdanstyle=stylegraphe(s_env     = ellipse,
                               s_penlab  = currentpen,
                               s_penenv  = currentpen,
                               s_fill    = NoFill,
                               a_ang     = 0,
                               a_labpos  = 0.5,
                               a_labdir  = (0,0),
                               a_pen     = currentpen,
                               a_penbelow= nullpen,
                               a_penlab  = currentpen,
                               a_arrow   = None,
                               a_labfill = UnFill);
string[] noms={"$A$","$B$","$C$","$D$","$E$","$F$"};
real[][] matadj={{0,1,0,0,0,1},
              {0,0,0,0,1,0},
              {1,3,0,0,0,1},
              {0,2,0,0,1,0}};

GRAPHE gr=GRAPHE(
           //noms,
           matadj,
           configuration="cercle",
           gourdanstyle
           );
modif_a(gr,2,0,a_labpos=.7);
modif_a(gr,3,1,a_labpos=.4);
modif_a(gr,1,4,a_labpos=.7);
           
draw(gr,aff_a_lab=true);


Important : note que j'ai mis noms en commentaire... pour supprimer temporairement les noms personnalisés des sommets : car ils sont ainsi notés $S_i$ et tu as les numéros nécessaires pour savoir quels numéros de sommets indiquer au niveau des arguments de la fonction modif_a !

------------

J'ai plein d'idées pour étendre les possibilités de cette extension ; une nouvelle vient de germer pour faciliter la résolution de ce genre de problème... et je l'ai ajoutée à ma liste très très très longue des améliorations.

Re: gm_graphes

MessagePosté: Vendredi 18 Novembre 2011, 00:03
par gourdan
Par exemple est-ce qu'il est possible de déplacer juste l'étiquette entre S2 et S5 ?
Le reste ça va très bien.

Re: gm_graphes

MessagePosté: Vendredi 18 Novembre 2011, 00:08
par GMaths
gourdan a écrit:Par exemple est-ce qu'il est possible de déplacer juste l'étiquette entre S2 et S5 ?
Le reste ça va très bien.

Tu remarqueras que j'en avais déjà modifié 3... et que j'avais oublié ce cas là !

N'est-il pas facile de remarquer qu'il faut ajouter ce qui suit ????

Code: Tout sélectionner
modif_a(gr,2,5,a_labpos=.7);


--------

Avec 4 modifications après application du style général, cela devient lourd et je me serais personnellement contenté d'une modification générale (a_labpos = 0.6).

Re: gm_graphes

MessagePosté: Vendredi 18 Novembre 2011, 00:10
par gourdan
Je n'arrive pas à modifier l'étiquette de l'arête reliant S2 à S5.

Re: gm_graphes

MessagePosté: Vendredi 18 Novembre 2011, 00:11
par GMaths
gourdan a écrit:Je n'arrive pas à modifier l'étiquette de l'arête reliant S2 à S5.

Tu n'as pas essayé ce que je propose d'ajouter ci-dessus.

Code: Tout sélectionner
import gm_graphes;
size(7cm,0);
stylegraphe gourdanstyle=stylegraphe(s_env     = ellipse,
                               s_penlab  = currentpen,
                               s_penenv  = currentpen,
                               s_fill    = NoFill,
                               a_ang     = 0,
                               a_labpos  = 0.5,
                               a_labdir  = (0,0),
                               a_pen     = currentpen,
                               a_penbelow= nullpen,
                               a_penlab  = currentpen,
                               a_arrow   = None,
                               a_labfill = UnFill);
string[] noms={"$A$","$B$","$C$","$D$","$E$","$F$"};
real[][] matadj={{0,1,0,0,0,1},
              {0,0,0,0,1,0},
              {1,3,0,0,0,1},
              {0,2,0,0,1,0}};

GRAPHE gr=GRAPHE(
           //noms,
           matadj,
           configuration="cercle",
           gourdanstyle
           );
modif_a(gr,2,0,a_labpos=.7);
modif_a(gr,3,1,a_labpos=.4);
modif_a(gr,1,4,a_labpos=.7);
modif_a(gr,2,5,a_labpos=.7);
           
draw(gr,aff_a_lab=true);

Re: gm_graphes

MessagePosté: Vendredi 18 Novembre 2011, 00:14
par gourdan
c'est nickel, j'avais fait une erreur de frappe.

Re: gm_graphes

MessagePosté: Vendredi 18 Novembre 2011, 00:15
par gourdan
Et enfin une dernière chose, est-il possible de dessiner des carrés à la place des ellipses ?

Re: gm_graphes

MessagePosté: Vendredi 18 Novembre 2011, 00:17
par GMaths
gourdan a écrit:Et enfin une dernière chose, est-il possible de dessiner des carrés à la place des ellipses ?

Dans ton style, tu remplaces ellipse par box.

Re: gm_graphes

MessagePosté: Vendredi 18 Novembre 2011, 00:20
par gourdan
Super !!!
A quand la coloration et Dijkstra :D

Re: gm_graphes

MessagePosté: Vendredi 18 Novembre 2011, 00:29
par GMaths
gourdan a écrit:Super !!!
A quand la coloration et Dijkstra :D

J'ai dit que ma liste de choses à faire est très très très longue... tellement j'ai d'idées. Je n'ai pas fait le quart de ce que je voudrais faire... ;-)

Mais... je ne me précipite pas car je n'en ai pas besoin pour moi... et donc il va falloir attendre que j'ai du temps de libre... en n'ayant plus rien à faire qui me soit aussi utile.

Et puis... j'ai d'abord des idées pour décrire des graphes simples avec des syntaxes totalement différentes... qui ne nécessiteront pas de matrice au moment de leur définition.
Mais c'est en quelque sorte des interfaces différentes que je vais ajouter... car en arrière plan, je vais continuer à gérer ainsi les sommets et les arcs... via une matrice qui va permettre effectivement de faire des calculs de chemins.

Re: gm_graphes

MessagePosté: Vendredi 18 Novembre 2011, 00:37
par gourdan
C'est vrai que le plus intéressant c'est de faire des graphes de qualité assez rapidement, et je pense que c'est le cas de tes codes, pour moi cela me suffit amplement.
Je regarderai les autres paramètres petit à petit.
Merci pour ce travail, bonne nuit et bonne journée pour demain.