# Best package for drawing dance charts

I want to draw dance step chart. Something similar to

I was wondering if maybe dedicated package exists or is my only option to use "normal" drawing tools. Maybe something like Tikz?

Does anyone have any experience with something like this?. What would you recommend?

-
Actually, Tikz seems to be perfect for this, by defining a new node for footprint –  Lionel MANSUY Dec 17 '12 at 16:58

I would use TikZ; here's a little initial code that could be highly improved, but the idea is to define one basic shape (for the right foot, the other, for the left one is a simple reflection) and then it seems simple to place the shapes in the desired positions using nodes:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage{graphicx}

\newcommand\rifoot{%
\begin{tikzpicture}[scale=0.4]
\path[fill=black] (0,0) -- (3,0) -- (2,-5) -- (0,-5) -- cycle;
\fill (1.5,0) circle (1.5);
\fill (1,-5.5) circle (1);
\fill[white] (0,-5) rectangle (2,-5.5);
\end{tikzpicture}}

\newcommand\lefoot{\scalebox{-1}[1]{\rifoot}}

\begin{document}

\begin{tikzpicture}
% the feet
\node (l1) at (0,0) {\lefoot};
\node (r1) at (2,-2) {\rifoot};
\node (l2) at (0,-5) {\lefoot};
\node (r2) at (2,-7) {\rifoot};
\node[rotate=-80] (l3) at (7,1) {\lefoot};
\node[rotate=-120] (r3) at (5.5,-2) {\rifoot};
\node[rotate=-120]  (r4) at (5.5,-6) {\rifoot};

% the arrows
\draw[ultra thick,->,dashed] (l1.north) to[out=90,in=135] (l3);
\draw[ultra thick,->] ([xshift=-1cm,yshift=0.5cm]r3.east) -- +(0,-2);

% the labels
\node[font=\LARGE\sffamily\bfseries] at ([xshift=-1cm]l2.west) {1.};
\node[font=\LARGE\sffamily\bfseries] at ([xshift=-1cm]l1.west) {2.};
\node[font=\LARGE\sffamily\bfseries] at ([xshift=3.5cm,yshift=2cm]r3.east) {3.};
\node[font=\LARGE\sffamily\bfseries] at ([xshift=3.5cm,yshift=1cm]r4.east) {4.};
\end{tikzpicture}

\end{document}


Paulo Cereda has kinly provided me with some nicer shapes for the feet and now the overall aspect improves:

\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}

\newcommand\rifoot{\includegraphics[scale=0.7]{rifoot}}
\newcommand\lefoot{\includegraphics[scale=0.7]{lefoot}}

\begin{document}

\begin{tikzpicture}
% the feet
\node (l1) at (0,0) {\lefoot};
\node (r1) at (0.7,-0.7) {\rifoot};
\node (l2) at (0,-2) {\lefoot};
\node (r2) at (0.7,-2.7) {\rifoot};
\node[rotate=-60] (l3) at (2.8,-0) {\lefoot};
\node[rotate=-120] (r3) at (2,-0.8) {\rifoot};
\node[rotate=-120]  (r4) at (2,-2.5) {\rifoot};

% the arrows
\draw[ultra thick,->,dashed] (l1.north) to[out=90,in=90] (l3.west);
\draw[ultra thick,->] ([xshift=-10pt,yshift=0pt]r3.east) -- +(0,-1);

% the labels
\node[font=\LARGE\sffamily\bfseries] at ([xshift=-1cm]l2.west) {1.};
\node[font=\LARGE\sffamily\bfseries] at ([xshift=-1cm]l1.west) {2.};
\node[font=\LARGE\sffamily\bfseries] at ([xshift=1.7cm,yshift=0.5cm]r3.east) {3.};
\node[font=\LARGE\sffamily\bfseries] at ([xshift=1.7cm]r4.east) {4.};
\end{tikzpicture}

\end{document}


And here are the PNG images:

-
Well, Tikz it is. Thank you for your help. –  user1819238 Dec 17 '12 at 20:23