Définition d'un Arbre

Exemples d'ajustement du code TikZ

Lancer l'application ici  

Changement du style global ou individuel des nœuds :

% Styles (MODIFIABLES)
\tikzstyle{fleche}=[->,>=latex,thick]
\tikzstyle{noeud}=[fill=yellow,circle,draw]
\tikzstyle{feuille}=[fill=yellow,circle,draw]
\tikzstyle{etiquette}=[midway,fill=white,draw]
...
% Styles (MODIFIABLES)
\tikzstyle{fleche}=[->,>=latex,thick]
\tikzstyle{noeud}=[fill=yellow,diamond,draw]
\tikzstyle{feuille}=[scale=1.75]
\tikzstyle{etiquette}=[midway,fill=white,draw]
...

Modification des formes des arcs et de l'écartement des feuilles

% Dimensions (MODIFIABLES)
\def\DistanceInterFeuilles{2}
...
% Arcs (MODIFIABLES : Styles)
\draw[fleche] (R)--(Ra) node[etiquette] {oui};
\draw[fleche] (R)--(Rb) node[etiquette] {non};
% Dimensions (MODIFIABLES)
\def\DistanceInterFeuilles{4}
...
% Arcs (MODIFIABLES : Styles)
\draw[fleche] (R)-|(Ra) node[etiquette] {oui};
\draw[fleche] (R)-|(Rb) node[etiquette] {non};

Modification du style et de la position des étiquettes d'arcs

% Styles (MODIFIABLES)
\tikzstyle{feuille}=[fill=yellow,circle,draw]
\tikzstyle{etiquette}=[midway,fill=white,draw]
...
% Arcs (MODIFIABLES : Styles)
\draw[fleche] (R)--(Ra) node[etiquette] {$\times 2$};
\draw[fleche] (R)--(Rb) node[etiquette] {$+ 2$};
% Styles (MODIFIABLES)
\tikzstyle{feuille}=[fill=yellow,draw]
\tikzstyle{etiquette}=[midway,circle,draw]
...
% Arcs (MODIFIABLES : Styles)
\draw[fleche] (R)--(Ra) node[etiquette,left,red] {$\times 2$};
\draw[fleche] (R)--(Rb) node[etiquette,right,blue] {$+ 2$};

Déplacement des nœuds et suppression des arcs

% Noeuds (MODIFIABLES : Styles et Coefficients d'InterFeuilles)
...
\node[noeud] (Rb) at ({\NiveauB},{(1)*\InterFeuilles}) {$B$};
\node[noeud] (Rc) at ({\NiveauB},{(2)*\InterFeuilles}) {$\vdots$};
\node[noeud] (Rd) at ({\NiveauB},{(3)*\InterFeuilles}) {$Z$};
% Arcs (MODIFIABLES : Styles)
\draw[fleche] (R)--(Ra);
\draw[fleche] (R)--(Rb);
\draw[fleche] (R)--(Rc);
\draw[fleche] (R)--(Rd);
% Noeuds (MODIFIABLES : Styles et Coefficients d'InterFeuilles)
...
\node[noeud] (Rb) at ({\NiveauB},{(1.5)*\InterFeuilles}) {$B$};
\node (Rc) at ({\NiveauB},{(2.25)*\InterFeuilles}) {\LARGE $\vdots$};
\node[noeud] (Rd) at ({\NiveauB},{(3)*\InterFeuilles}) {$Z$};
% Arcs (MODIFIABLES : Styles)
\draw[fleche] (R)--(Ra);
\draw[fleche] (R)--(Rb);
% suppression  de \draw[fleche] (R)--(Rc);
\draw[fleche] (R)--(Rd);

Déplacement du sous-arbre d'un nœud

On le nœud et son sous-arbre associé :
% Noeuds (MODIFIABLES : Styles et Coefficients d'InterFeuilles)
\node[noeud] (R) at ({\NiveauA},{(0)*\InterFeuilles}) {$R$};
\node[noeud] (Ra) at ({\NiveauB},{(1)*\InterFeuilles}) {$A$};
\node[noeud] (Rb) at ({\NiveauB},{(2)*\InterFeuilles}) {$B$};
\node[noeud] (Rba) at ({\NiveauC},{(3)*\InterFeuilles}) {$X$};
\node[noeud] (Rbb) at ({\NiveauC},{(4)*\InterFeuilles}) {$Y$};
\node[noeud] (Rc) at ({\NiveauB},{(5)*\InterFeuilles}) {$C$};
\node[noeud] (Rd) at ({\NiveauB},{(6)*\InterFeuilles}) {$D$};
On pensera à modifier le niveau de tous les nœuds du sous-arbre :
% Noeuds (MODIFIABLES : Styles et Coefficients d'InterFeuilles)
\node[noeud] (R) at ({\NiveauA},{(0)*\InterFeuilles}) {$R$};
\node[noeud] (Ra) at ({\NiveauB},{(1)*\InterFeuilles}) {$A$};
\node[noeud] (Rb) at ({\NiveauB+1.5},{(2)*\InterFeuilles}) {$B$};
\node[noeud] (Rba) at ({\NiveauC+1.5},{(3)*\InterFeuilles}) {$X$};
\node[noeud] (Rbb) at ({\NiveauC+1.5},{(4)*\InterFeuilles}) {$Y$};
\node[noeud] (Rc) at ({\NiveauB},{(3)*\InterFeuilles}) {$C$};
\node[noeud] (Rd) at ({\NiveauB},{(4)*\InterFeuilles}) {$D$};

Inversion de l'ordre des feuilles d'un arbre

L'ordre d'affichage des feuilles est, par défaut :
  • de haut en bas si la racine de l'arbre est à gauche ou à droite
  • de gauche à droite si la racine de l'arbre est en haut ou en bas
Dans le code source, les "Dimensions calculées" sont commentées comme(NON MODIFIABLES).
% Dimensions calculées (NON MODIFIABLES)
\def\InterFeuilles{(-1)*\DistanceInterFeuilles}
Il est cependant possible de changer le signe du coefficient de \DistanceInterFeuilles pour inverser l'ordre d'affichage des feuilles sans avoir besoin de modifier les données saisies dans l'application :
% Dimensions calculées (NON MODIFIABLES)
\def\InterFeuilles{(1)*\DistanceInterFeuilles}
Lancer l'application ici