An example in Tikz: More examples and code are at http://www.texample.net/tikz/examples/ and the manual http://mirror.ctan.org/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf
\documentclass[a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
\begin{tikzpicture}
\node [name=oct,regular polygon,regular polygon sides=8,minimum size= 10em] {text};
\node at (oct.corner 1) [name=octCorner1] {$x_1$};
\node at (oct.corner 2) [name=octCorner2] {$x_2$};
\node at (oct.corner 3) [name=octCorner3] {$x_3$};
\node at (oct.corner 4) [name=octCorner4] {$x_4$};
\node at (oct.corner 5) [name=octCorner5] {$x_5$};
\node at (oct.corner 6) [name=octCorner6] {$x_6$};
\node at (oct.corner 7) [name=octCorner7] {$x_7$};
\node at (oct.corner 8) [name=octCorner8] {$x_8$};
\draw [double,-stealth,shorten <=5pt,shorten >=5pt] (oct.corner 1) -- node[above right]{$g(x)$} (oct.corner 8);
\draw [stealth-stealth,shorten <=5pt,shorten >=5pt] (oct.corner 3) -- (oct.corner 4);
\draw [-stealth,shorten <=5pt,shorten >=5pt] (oct.corner 5) --node[above]{$f(x)$} (oct.corner 6);
\end{tikzpicture}
\end{document}