Commit 25e8fd7d authored by Aurelien Pascal's avatar Aurelien Pascal
Browse files

Mon bel arbre généalogique

parent 483dd67c
......@@ -2608,9 +2608,62 @@ Prenez le temps de comprendre l'exemple suivant :
\end{LTXexample}
\subsection{Le cas des arbres}
Un arbre est un cas particulier important de la théorie des graphes, c'est un graphe connexe (tout les noeuds sont reliés) et acyclique (il n'y a qu'un seul chemin allant d'un noeud à un autre).\\
On les appelle \textit{arbres} car il est toujours possible de \textit{l'enraciner}, c'est à dire de choisir un noeud et de lui donner le statut de \textit{racine}, tous les noeuds étant alors reliés à la racine par un chemin unique faisant office de liens de \og parenté \fg{}.
Les arbres valent la peine d'être mentionnés ici car \verb=TikZ= possède une extension pour les tracer avec une grande simplicité, sans se soucier des coordonnées des points et en indiquant juste les liens de parenté.
Avant de lire la suite chargez donc \verb=\usetikzlibrary{trees}=.
Pour tracer un arbre il suffit alors de placer la \textit{racine} en tant que noeud, et de lui associer des enfants avec \verb=child{<enfants>}=.\\
La syntaxe de l'arbre est donc de la forme \\\verb% \node {racine} child { node{fils1} ...} child { node{fils2} child{...}...};%
Plusieurs options sont utiles :
\begin{itemize}
\item \verb%[sibling distance=<distance>]% définit la distance entre noeuds \og frères \fg{}
\item \verb%[level distance=<distance>]% définit la distance entre \og père \fg{} et \og fils \fg{}
\item \verb%[grow=<down/up/right/left>]% donne le sens dans lequel l'arbre doit croître
\end{itemize}
Enfin on peut placer du texte sur les liens avec \verb%edge from parent node {<texte>}%, ou modifier son style avec \verb%edge from parent[<options>]%
Voici un exemple complet pour assimiler toute ces informations :
\begin{LTXexample}[preset=\centering,width=0.45\textwidth]
\begin{tikzpicture}
%voici la racine
\node[draw] at (0,0) {Mon Papi} [grow=up]
[sibling distance=1.5cm]
%son un premier enfant
child{
node[draw] {Tonton}
edge from parent node[right,blue]
{framboise}
}
%le second
child{
node[draw] {Tata}
edge from parent[decorate,decoration=snake]
}
%et le troisieme, qui a lui aussi des enfants
child{
node[draw] {Maman} [grow=left]
child{
node[draw] {Moi}
edge from parent[red,->,>=latex]
}
child{
node[draw] {Ma soeur}
}
edge from parent[violet]
};
\end{tikzpicture}
\end{LTXexample}
Notez qu'un seul point-virgule \verb=;= (et donc une seule commande) a été nécessaire pour ce graphe.\\
Remarquez aussi que l'options \verb%violet% a été appliquée à tous les enfants de \og maman \fg{}, il s'agit de subtilités dans l'ordre de déclaration des options. Je ne rentrerais pas ici dans ces détails, mais sachez juste que le changement de style des chemins est un peu plus subtil que la méthode que je vous ai présenté ici. Si cela vous intéresse n'hésitez pas à consulter la documentation de \verb=TikZ=.
\subsection{Le cas des arbres}
\section{Divers trucs et astuces}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment