%!TEX root = /Users/ego/Boulot/TKZ/tkz-graph/doc-fr/TKZdoc-gr-main.tex
% $Id$

%<--------------------------------------------------------------------------->
%                             Vertices
%<--------------------------------------------------------------------------->

\section{Placement de sommets sur une forme géométrique}
Il s'agit ici de placer un groupe de sommets suivant une direction donnée ou bien encore suivant une forme prédéfinie. Les sommets sont placés avec comme support une figure géométrique simple. La macro principale utilise une direction  définie à l'aide de l'option dir, la version étoilée une forme particulière triangulaire, carrée etc...   


\begin{NewMacroBox}{Vertices}{\oarg{local options}\var{type}\var{List of vertices}}
\emph{Il y a donc plusieurs types de formes géométriques, droite, triangle, carrés et cercles. La macro \tkzcname{SetGraphUnit} permet de modifier les  longueurs. Pour les sommets alignés, ceux-ci sont placés suivant une direction donnée par |EA|, |WE|, |NO|, |SO|, |NOEA|, |NOWE|, |SOEA|, |SOWE|.} 

\medskip
\begin{tabular}{llc}
 \toprule
Premier Argument   &            & Définition            \\
\midrule 
\TAline{line  } {} {Sommets alignés, une option détermine la direction} 
\TAline{tr1   } {} {première forme de triangle}   
\TAline{tr2   } {} {deuxième forme de triangle}  
\TAline{tr3   } {} {troisième forme de triangle}  
\TAline{tr4   } {} {quatrième forme de triangle}  
\TAline{square} {} {quatre sommets sur un carré}  
\TAline{circle} {} {sommets sur une cercle}  
\bottomrule
\end{tabular}

\medskip    
\emph{Le second argument est une liste de noms pour les sommets.} 

\medskip    
\begin{tabular}{llc}
\midrule
Options   & Défaut  &      Définition  \\
\midrule
\TOline{dir}  {EA} {permet de placer plusieurs sommets alignés} 
\bottomrule
\end{tabular}

\medskip    
\emph{Les options  sont celles d'un sommet (Vertex).} 
\end{NewMacroBox}    
 

                                                                    
\subsection{\tkzcname{Vertices} à partir d'un sommet défini par des coordonnnées}                 
  
                                                                   
\begin{center}                                                     
\begin{tkzexample}[latex=7cm, ,small]                              
\begin{tikzpicture}
    \SetGraphUnit{2}                       
   \draw[help lines] (0,0) grid (5,2);
   \Vertices[x=1,y=2]{line}{A,B,C}
\end{tikzpicture}
\end{tkzexample}
\end{center}

\subsection{\tkzcname{Vertices} à partir d'une position donnée.}

\begin{center}                                                     
\begin{tkzexample}[latex=7cm, ,small] 
\begin{tikzpicture}[rotate=45] 
  \SetGraphUnit{2}
   \draw[help lines] (0,0) grid (5,2);
   \coordinate (A) at (1,1); 
   \Vertices[Node]{line}{A,B,C}
\end{tikzpicture}
\end{tkzexample}
\end{center}

\subsection{Exemples avec une direction } 
 Il s'agit ici de placer une liste de sommets suivant une direction donnée, cette direction est définie à l'aide de l'option \tkzname{dir}.  


\begin{center}
\begin{tkzexample}[latex=7cm, ,small]  
\begin{tikzpicture}
  \GraphInit[vstyle=Art]
  \Vertices[dir=\NOEA]{line}{A,B,C,D}
  \Vertices[dir=\NOWE]{line}{A,E,F,G}
\end{tikzpicture}
\end{tkzexample}
\end{center} 
              

\subsection{Placement sur un triangle }

Il y a différentes possibilités avec une forme triangulaire, mais les triangles sont isocèles rectangles. Voici dans l'ordre les formes \tkzname{tr1}, \tkzname{tr2} , \tkzname{tr3} et \tkzname{tr4}


\begin{tkzexample}[latex=8cm,small]  
\begin{tikzpicture}\SetGraphUnit{2}
     \Vertices{tr1}{A,B,C}
\end{tikzpicture}\hspace*{2cm}
\begin{tikzpicture}\SetGraphUnit{2}
     \Vertices{tr2}{A,B,C}
\end{tikzpicture}
\end{tkzexample}

\begin{tkzexample}[latex=8cm,small]  
\begin{tikzpicture}\SetGraphUnit{2}
     \Vertices{tr3}{A,B,C}
\end{tikzpicture}\hspace*{2cm}
\begin{tikzpicture}\SetGraphUnit{2}
     \Vertices{tr4}{A,B,C}
\end{tikzpicture}
\end{tkzexample}  


\subsection{Utilisation d'un carré}

 
Deux autres possibilités de placer un node. La première utilise un node obtenu à l'aide d'une intersection (voir le pgfmanual). Dans la première, j'ai redéfini la distance unité entre deux sommets à l'aide de   \tkzcname{SetGraphUnit}.

\begin{center}
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}
   \SetGraphUnit{3}
   \GraphInit[vstyle=Shade]
   \Vertices{square}{A,B,C,D}
   \coordinate (E) at (intersection of A--C and B--D);
   \Vertex[Node]{E}% voir option node
\end{tikzpicture}
\end{tkzexample}
\end{center}


\subsection{Utilisation d'un cercle }

\begin{tkzexample}[latex=7cm,small]  
\begin{tikzpicture}
  \SetGraphUnit{2}
  \Vertices{circle}{A,B,C,D}
\end{tikzpicture}
\end{tkzexample} 


\subsection{Utilisation d'un cercle  et positionnement des labels }

\begin{tkzexample}[latex=7cm,small]   
\begin{tikzpicture} \SetGraphUnit{2}
  \GraphInit[vstyle=Classic]
  \Vertices{circle}{A,B,C,D,E,F}
\end{tikzpicture}
\end{tkzexample}



\subsection{Rotation  et labels externes }

|Lpos| = \tkzname{angle de la rotation}. Cela permet de faire une rotation du label autour du centre de chaque sommet et de suivre la rotation du graphe. Il suffit pour comprendre cette option de compiler l'exemple en l'omettant.  


\begin{tkzexample}[latex=7cm,small] 
\begin{tikzpicture}[rotate=90]
  \GraphInit[vstyle=Classic]
  \Vertices[Lpos=90,unit=2]{circle}{A,B,C,D,E,F}
\end{tikzpicture}
\end{tkzexample}


\subsection{Placement sur un cercle }

Avec des labels externes, il faut procéder avec précaution. 

\begin{tkzexample}[latex=7cm,small] 
\begin{tikzpicture}[scale=.5]
 \SetGraphUnit{4}
 \GraphInit[vstyle=Classic] 
 \begin{scope}[rotate=45] 
   \Vertices[Lpos=45]{circle}{C,E,A,B} 
 \end{scope} 
 \NOEA[Lpos=90,unit=2.828](E){D} 
 \Edges(A,B,E,D,C,E,A,C,B) 
\end{tikzpicture}
\end{tkzexample}

  

\endinput
