Définition d'un Arbre

Ajustement du code TikZ

Lancer l'application ici  
  Les dimensions de l'arbre sont contrôlées par des paramètres définis au début du code :
%:-+- Engendré par : http://math.et.info.free.fr/TikZ/Arbre/
\begin{tikzpicture}[xscale=1,yscale=1]
  % Styles (MODIFIABLES)
  \tikzstyle{fleche}=[->,>=latex,thick]
  \tikzstyle{noeud}=[fill=yellow,circle,draw]
  \tikzstyle{feuille}=[fill=yellow,circle,draw]
  \tikzstyle{etiquette}=[midway,fill=white,draw]
  \tikzstyle{commentaire}=[right,blue]
  % Dimensions (MODIFIABLES)
  \def\DistanceInterNiveaux{3}
  \def\DistanceInterFeuilles{2}
  % Dimensions calculées (NON MODIFIABLES)
  \def\NiveauA{(0)*\DistanceInterNiveaux}
  \def\NiveauB{(1.66)*\DistanceInterNiveaux}
  \def\NiveauC{(3)*\DistanceInterNiveaux}
  \def\NiveauD{(4)*\DistanceInterNiveaux}
  \def\InterFeuilles{(-1)*\DistanceInterFeuilles}
  . . .
  La figure ci-contre montre ce que représentent les divers paramètres dans le mode d'affichage "Niveaux équidistants" pour un arbre avec Racine à gauche qui se développe vers la droite (le principe est le même pour les différentes orientations).
  • \DistanceInterNiveaux   est l'espace entre deux niveaux successifs (3 cm par défaut)
  • \DistanceInterFeuilles   est l'espace entre deux feuilles successives (2 cm par défaut)

La modificaion de ces deux paramètres permet de modifier globalement largeur ou profondeur de l'arbre.
  Dans ce cas on raisonne en distances précises:   \def\DistanceInterFeuilles{1.5} définit un espace de 1,5cm entre les feuilles.

On peut aussi obtenir le même résultat en modifiant globalement les échelles horizontale xscale ou verticale yscale du tableau ([xscale=1,yscale=1] par défaut).
  Dans ce cas on raisonne en proportion:   xscale=0.5 représente une réduction de 50% horizontalement.

Lors de la génération du code source, des variables intermédiaires sont créées, et leurs valeurs sont calculées automatiquement, pour rendre ce code plus lisible :

  • \NiveauA, \NiveauB ...   permet de fixer la position de chaque niveau (abscisse ou ordonnée selon l'orientation de l'arbre)
  • \InterFeuilles   sera affecté d'un coefficient pour fixer les différentes positions de chaque nœud de l'arbre (ordonnée ou abscisse selon l'orientation)

Pour faciliter la lecture du code et rendre plus intuitives les modifications éventuelles des coefficients de \InterFeuilles, ceux-ci sont toujours positifs quelque soit l'orientation de l'arbre, comme on le voit ci-dessous :

% Noeuds (MODIFIABLES : Styles et Coefficients d'InterFeuilles)
\node[noeud] (R) at ({\NiveauA},{(3)*\InterFeuilles}) {$O$};
\node[noeud] (Ra) at ({\NiveauB},{(1.5)*\InterFeuilles}) {$A$};
\node[noeud] (Raa) at ({\NiveauC},{(0)*\InterFeuilles}) {$X$};
\draw (Raa.east) node[commentaire] {$1$};
  . . .

On repère facilement un nœud particulier dans le code source, soit par son étiquette, soit par son nom :   (R) pour la racine,   (Ra), (Rb) ... pour ses fils, et ainsi de suite récursivement).     On peut alors modifier le coefficient de \InterFeuilles pour déplacer le nœud sur le même niveau.

Styles :

On peut aussi modifier les différents styles (fleche noeud etiquette commentaire) prédéfinis par défaut.

  • fleche   style des flèches des arcs
  • noeud   style des nœuds et de leurs textes
  • feuille   style des nœuds terminaux et de leurs textes
    (identique au style noeud par défaut)
  • etiquette   style des étiquettes placées sur les arcs
  • commentaire   style des textes ajoutés à côté des feuilles
    (c'est à dire les nœuds terminaux de l'arbre)

Modes d'écriture :

L'application propose deux modes d'écriture :

  • "{$Mathématique$}"   dans le code engendré des $ encadreront automatiquement le texte saisi
  • "{Texte}"   dans le code engendré le texte sera simplement recopié tel qu'il a été saisi

Espacement des niveaux de profondeur de l'arbre :

Si la case "Niveaux équidistants" n'est pas cochée les intervalles entre les niveaux diminuent lorsqu'on s'éloigne de la racine. Cette option, fixée par défaut, améliore souvent l'aspect général de l'arbre.

On voit ci-contre le même l'arbre que ci-dessus en mode "{Texte}" avec des "Niveaux non équidistants"

On trouvera des exemples de modification du code à la page Exemples d'ajustement de cette rubrique.

Lancer l'application ici