This example shows the power and flexibility of PGF's style mechanism. The same paths are used to draw the diagrams, but by altering styles different visual results are achieved.

Edit and compile if you like:
% Hypercycle % Author: Florian Hollandt \documentclass{article} \usepackage{tikz} \usepackage[active,tightpage]{preview} \PreviewEnvironment{tikzpicture} \setlength\PreviewBorder{5pt}% \usetikzlibrary{shapes} \setlength\oddsidemargin{0in} \begin{document} \pagestyle{empty} \def\n{5} % Number of Information carrier / Enzyme pairs \def\d{2} % Width of the figure \tikzstyle{every picture}=[execute at end picture={ \foreach \x in {1,...,\n}{ \path (360*\x/\n:\d) node [info carrier] (I\x) {$I_{\x}$}; \draw [I to I] (I\x.200+360*\x/\n) arc (140:360:\r/6) arc (0:20:\r/6); \path (360*\x/\n:2*\d) node [enzyme] (E\x) {$E_{\x}$}; \draw [I to E] (I\x) to (E\x); \draw [E to I] (360*\x/\n-360/\n:2*\d) to (I\x.center); }; }] \paragraph{Plain} \begin{center} \tikzstyle{radius}=[ execute at begin picture={ \def\r{2*3/4} } ] \tikzstyle{every node}=[ node distance=\d cm ] \tikzstyle{info carrier}=[ inner sep=2pt ] \tikzstyle{enzyme}=[] \tikzstyle{every path}=[ shorten >=2pt, shorten <=2pt ] \tikzstyle{I to E}=[ ->, shorten >=2pt, shorten <=2pt ] \tikzstyle{E to I}=[ ->, densely dotted, shorten >=6mm, shorten <=4mm ] \tikzstyle{I to I}=[ ->, rotate=360*\x/\n ] \begin{tikzpicture}[radius] \end{tikzpicture} \end{center} \paragraph{Fancy} \begin{center} \tikzstyle{radius}=[ execute at begin picture={ \def\r{2.1} } ] \tikzstyle{every node}=[ node distance=\d cm ] \tikzstyle{info carrier}=[ shape=rectangle, draw=black, rounded corners=0.5, shading=radial, outer color=orange, inner color=white ] \tikzstyle{enzyme}=[ inner sep=2pt, shape=ellipse, draw=black, rounded corners=0.5, ball color=green ] \tikzstyle{every path}=[ shorten >=2pt, shorten <=2pt, thick ] \tikzstyle{I to E}=[ -stealth, controls=(10+360*\x/\n:\d*4/3) and (-10+360*\x/\n:\d*5/3), shorten >=2pt, shorten <=2pt, in=360*\x/\n+225 ] \tikzstyle{E to I}=[ -stealth, controls=(360*\x/\n-360/\n+30:\d*5/3) and (360*\x/\n-360/\n-00:\d*4/3), densely dotted, shorten >=8mm, shorten <=5mm ] \tikzstyle{I to I}=[ -stealth, shorten >=0pt, shorten <=2pt, rotate=360*\x/\n ] \begin{tikzpicture}[radius] \end{tikzpicture} \end{center} \end{document}
Click to download: hypercycle.tex • hypercycle.pdf
Open in Overleaf: hypercycle.tex