% Copyright 2006 by Till Tantau
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Free Documentation License.
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.


\section{Angle Library}

\label{section-angle}

\begin{tikzlibrary}{angles}
  This library defines pic types for drawing angles.
\end{tikzlibrary}

\begin{pictype}{angle}{\opt{|=|\meta{A}|--|\meta{B}|--|\meta{C}}}
  This pic adds a drawing of an angle to the current path. This
  ``drawing of an angle'' consist of a ``sector'' or ``wedge'' or
  ``slice'' whose pointed end is at point \meta{B} and whose straight
  sides lie on the lines form \meta{B} to \meta{A} and from \meta{B}
  to \meta{C}. The length of these lines is governed by the following
  key:
  \begin{key}{/tikz/angle radius=\meta{dimension} (initially 5mm)}
    The length of the sides of the angle's wedge:
\begin{codeexample}[]
\tikz \draw (2,0) coordinate (A) -- (0,0) coordinate (B)
         -- (-1,-1) coordinate (C)
           pic [fill=black!50]                      {angle = A--B--C}
           pic [draw,->,red,thick,angle radius=1cm] {angle = C--B--A};
\end{codeexample}
  \end{key}

  The three points \meta{A}, \meta{B}, and \meta{C} \emph{must} be the
  names of nodes or coordinates; you cannot use direct coordinates like
  ``|(1,1)|'' here.

  You can leave out the three points, in this case the text |A--B--C|
  is used; so in the above examples we could just have written
  |{angle}| in the first pic.

  Concerning the sector that makes up the drawing of the angle, the
  angular part of this sector is drawn in front of the path if the
  |draw| option is given to the |pic|, while filled sector is drawn
  behind the |pic|, provided an option like |fill| or |shade| is
  passed to the pic. The following example shows the difference:

\begin{codeexample}[]
\tikz \draw [line width=2mm]
      (2,0) coordinate (A) -- (0,0) coordinate (B)
   -- (1,1) coordinate (C)
     pic [draw=blue, fill=blue!50, angle radius=1cm] {angle};
\end{codeexample}

  When |pic text| is set (which you typically do by using the quotes
  syntax), a node will be created whose name is empty 
  (and, thus, inherits the pic's name) and which will be at the
  half-way angle between the lines to \meta{A} and \meta{C} and whose
  distance from \meta{B} is |angle radius| times the following factor:
  \begin{key}{/tikz/angle eccentricity=\meta{factor} (initially 0.6)}
\begin{codeexample}[]
\tikz \draw (2,0) coordinate (A) -- (0,0) coordinate (B)
         -- (1,1) coordinate (C)
  pic ["$\alpha$", draw, ->] {angle};
\end{codeexample}        
\begin{codeexample}[]
\tikz \draw (2,0) coordinate (A) -- (0,0) coordinate (B)
         -- (1,1) coordinate (C)
  pic ["$\alpha$", draw, angle eccentricity=1] {angle};
\end{codeexample}        
\begin{codeexample}[]
\tikz {
  \draw (2,0) coordinate (A) -- (0,0) coordinate (B)
     -- (1,1) coordinate (C)
      pic (alpha) ["$\alpha$", draw] {angle};
      
  \draw (alpha) circle [radius=5pt];
}
\end{codeexample}        
  \end{key}  
\end{pictype}


%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "pgfmanual-pdftex-version"
%%% End: 
