Published 2012-02-01 |
Author:
Jean-Noël Quintin

Do you have a question regarding this example, TikZ or LaTeX in general? Just ask in the
**LaTeX Forum**.

Oder frag auf Deutsch auf TeXwelt.de.
En français: TeXnique.fr.

```
% A complete graph
% Author: Quintin Jean-Noël
% <http://moais.imag.fr/membres/jean-noel.quintin/>
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary[topaths]
% A counter, since TikZ is not clever enough (yet) to handle
% arbitrary angle systems.
\newcount\mycount
\begin{document}
\begin{tikzpicture}[transform shape]
%the multiplication with floats is not possible. Thus I split the loop in two.
\foreach \number in {1,...,8}{
% Computer angle:
\mycount=\number
\advance\mycount by -1
\multiply\mycount by 45
\advance\mycount by 0
\node[draw,circle,inner sep=0.25cm] (N-\number) at (\the\mycount:5.4cm) {};
}
\foreach \number in {9,...,16}{
% Computer angle:
\mycount=\number
\advance\mycount by -1
\multiply\mycount by 45
\advance\mycount by 22.5
\node[draw,circle,inner sep=0.25cm] (N-\number) at (\the\mycount:5.4cm) {};
}
\foreach \number in {1,...,15}{
\mycount=\number
\advance\mycount by 1
\foreach \numbera in {\the\mycount,...,16}{
\path (N-\number) edge[->,bend right=3] (N-\numbera) edge[<-,bend
left=3] (N-\numbera);
}
}
\end{tikzpicture}
\end{document}
```

## Comments

Nice application. TikZ already has a powerful math library so you don't need any counters. \foreach loops can provide counters too. Example; you can replace your first foreach loop with

\foreach \x in {1,...,8}{ \pgfmathparse{(\x-1)*45} \node[draw,circle,inner sep=0.25cm] (N-\x) at (\pgfmathresult:5.4cm) {}; }

Thanks, this is very nice. Here's a further simplification. (I made the graph undirected but you can add the arrows back if you like.)

Sorry, for an undirected graph, the double edge isn't really required, but I forgot to drop it. So either put the edge[- pieces to edge[-> and edge[<- as in the original for directed or replace it with the following for undirected.

Adding comments is currently not enabled.