Arbres

Voir le sujet précédent Voir le sujet suivant Aller en bas

Arbres

Message  charly le Jeu 16 Avr - 1:56

Bonsoir,

Encore une petite salve de questions.

1) Je reviens ici sur une question mal exprimée dans un post précédent.
a) On a dessiné un arbre avec texgraph. Je l'exporte en pgf sous toto.pgf
b) On ouvre toto.pgf dans avec mon editeur latex(winedt en l'espèce)
c) Je copie le fichier dans mon code latex de mon document essai.tex(ce qui me permet de modifier des positions de label, des tailles...)
d) On compile et voila le travail.

Ca marche, mais comment faire pour changer la taille de mon image?
(lors de mes dessins d'ensembles, il n'y avait qu'un seul élément graphique(utilisateur) et je m'en sortais par un size(10) placé au début de celui-ci)

Bref, je ne veux pas forément que mon graphe prenne toute la page....

2) Une micro question cette fois: comment changer le rayon des cercles entourant les nodes?

3) Une micro question encore: comment changer la couleur de remplissage de certains cercles entourant quelques nodes choisis?

4) Comment faire pour mettre un texte au bout d'un rammeau terminal (une probabilité par exemple) rameau invisible?

merci

charly

Nombre de messages : 26
Age : 55
Date d'inscription : 11/02/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Arbres

Message  P.Fradin le Jeu 16 Avr - 10:38

charly a écrit:Bonsoir,

Bonjour,


1) Je reviens ici sur une question mal exprimée dans un post précédent.
a) On a dessiné un arbre avec texgraph. Je l'exporte en pgf sous toto.pgf
b) On ouvre toto.pgf dans avec mon editeur latex(winedt en l'espèce)
c) Je copie le fichier dans mon code latex de mon document essai.tex(ce qui me permet de modifier des positions de label, des tailles...)

Tu as bien plus simple: au lieu d'exporter dans un fichier, tu peux exporter dans le presse-papier (6ème bouton partant de la gauche sur la barre d'outils Standard) et coller dans ton document LaTeX.


Ca marche, mais comment faire pour changer la taille de mon image?
(lors de mes dessins d'ensembles, il n'y avait qu'un seul élément graphique(utilisateur) et je m'en sortais par un size(10) placé au début de celui-ci)

Qu'il y ait un seul ou cent éléments graphiques, cela ne change rien! Tu peux toujours créer un élément Utilisateur ne contenant que l'instruction size(10) et mettre cet élément en premier. Sinon tu peux aussi taper dans la ligne de commandes en bas de la fenêtre: size(10) puis tu fais F10 pour mettre le graphique à jour. Et enfin une autre solution consiste aussi à modifier soi-même la fenêtre (F6) et on modifie à la main les paramètres Xscale et Yscale...


2) Une micro question cette fois: comment changer le rayon des cercles entourant les nodes?

Modifier la valeur de la variable globale nodeep.


3) Une micro question encore: comment changer la couleur de remplissage de certains cercles entourant quelques nodes choisis?

Il faut modifier la macro drawAnode, exemple:

Code:

[{drawAnode(indice): on dessine le node indice %1, les attributs sont ceux de l'élément graphique styleNodes}

if Pos(%1,[1,5])<>Nil then
  SaveAttr(),
  FillColor:=lightblue, LineStyle:=solid, LabelStyle:=0,
  if %1=1 then nodeep:=0.5 else nodeep:=0.25 fi,
  Eval( ["Cercle(N",%1, ",", nodeep, ")" ]),
  Eval( ["Label( N", %1, ", \node", %1, ")" ]),
  RestoreAttr()
else
  {Eval( ["Cercle(N",%1, ",", nodeep, ")" ])}
  Eval( ["Label( N", %1, ", \node", %1, ")" ])
fi
]


4) Comment faire pour mettre un texte au bout d'un rammeau terminal (une probabilité par exemple) rameau invisible?

Invisible? Cela me paraît bizarre comme demande! Il faut modifier la macro drawAline, exemple pour ne pas dessiner le trait qui relie les nodes 0 et 3:

Code:

[ { drawAline(affixe depart, vecteur direction, indice1, indice2):
 on relie le node indice1 (son affixe est %1) au node indice2 (la direction est %2),
 les attributs sont ceux de l'élément graphique arbre}
 if %3=0 And %4=3 then {rien}
 else {sinon on dessine}
 $dep:=%1, $dir:=%2,
 $u:=Re(dir*bar(Dir1))*Dir1, {composante du vecteur direction suivant Dir1}
 $v:=Re(dir*bar(Dir2))*Dir2, {composante du vecteur direction suivant Dir2}
 if linetype=0 {segment de droite}
  then Ligne([dep,dep+dir],0)
 elif linetype=1 {segment à un coude}
  then u:=u*armpos, Ligne( [dep, dep+u+v, dep+dir],0)
 elif linetype=2 {segment à 2 coudes}
  then u:=u*armpos, Ligne( [dep, dep+u, dep+dir-u, dep+dir],0)
 elif linetype=3 {courbe de bézier}
  then Bezier(dep, dep+u/2, dep+u/2+v, dep+dir)
 elif linetype=4 {tube}
  then oldwidth:=Width,  Width:=Width*3,
        Ligne([dep,dep+dir],0), $oldcolor:=Color,
        Color:=FillColor, Width:=oldwidth,
        Ligne([dep,dep+dir],0), Color:=oldcolor
 fi
 fi
]


_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Arbres

Message  charly le Jeu 16 Avr - 11:11

Bonjour,

Merci pour ces réponses. Pour la denière, j'aurais voulu écrire 0,05 sous le C1, voire sous tous les rameaux terminaux de mon arbre et je proposais de tracer une ligne courte et invisible puis mon texte un peu sur le modèle proposé en dernier. Ta réponse convient à ce que je veux faire, mais je suis certain d'avoir une solution peu élégante...

Cordialemnt.

Charly

charly

Nombre de messages : 26
Age : 55
Date d'inscription : 11/02/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Arbres

Message  charly le Ven 17 Avr - 1:44

Bonsoir,

Pour le coloriage des cercles en couleurs différentes, peux-tu expliquer où se situe le coloriage des cercles B1 et C2 dans ta modification de de code? Je n'arrive pas à modifier cela sur d'autres arbres.... Crying or Very sad

Merci.

Charly

charly

Nombre de messages : 26
Age : 55
Date d'inscription : 11/02/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Arbres

Message  P.Fradin le Ven 17 Avr - 9:07

Bonjour Charly,

C'est ce test là:

Code:

if Pos(%1,[1,5])<>Nil then ...

car la macro Pos renvoie la position du premier argument dans la liste qui suit, par exemple Pos(2, [1,3,2]) renverra la valeur 3. Si la liste ne contient pas la valeur alors Pos renvoit Nil, donc la condition
Code:
Pos(%1,[1,5])<>Nil
signifie la même chose que %1=1 Or %1=5.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Arbres

Message  Contenu sponsorisé Aujourd'hui à 11:52


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum