2

What is the simple way to draw this figure? I am attempting to draw this using tikz. But I cannot easily match the sinusoidal wave with the arrows... I decide to use a Keynote (outcome below), and ask for help on tikz or LaTex?

enter image description here

Thank you!

5

With tikz-3dplot you can adjust the view angle.

\documentclass[tikz,border=3mm]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{70}{0}
\begin{tikzpicture}[scale=2]
\foreach \X in {1,...,6}
 {\begin{scope}[tdplot_main_coords]
\draw[dashed] (\X,0,-1.5) coordinate (b\X) -- (\X,0,0) coordinate (c\X);
 \begin{scope}[canvas is xy plane at z=0]
  \draw (c\X) circle[radius=3mm];
  \path ($(c\X)+(-\X*60+60:0.3)$) coordinate (t\X);
 \end{scope}
\end{scope} 
\draw (c\X|-0,-2.5) circle[radius=3mm];
 \ifodd\X
  \draw[-stealth] (t\X) -- (b\X);
  \draw[-stealth] (c\X|-0,-2.5) -- ++ (-\X*60+60:0.3) coordinate(p\X);
 \else
  \draw[stealth-] (t\X) -- (b\X);
  \draw[stealth-] (c\X|-0,-2.5) -- ++ (-\X*60+60:0.3)  coordinate(p\X);
 \fi
}
\draw plot[smooth,samples at={1,...,6}] (p\x);
\end{tikzpicture}
\end{document}

enter image description here

Or with some pgf keys.

\documentclass[tikz,border=3mm]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{70}{0}
\begin{tikzpicture}[clock/.cd,distance/.initial=2,radius/.initial=0.7,
angle increment/.initial=50]
\foreach \X in {1,...,6}
 {\begin{scope}[tdplot_main_coords]
\draw[dashed] (\pgfkeysvalueof{/tikz/clock/distance}*\X,0,-1.5) coordinate (b\X)
  -- (\pgfkeysvalueof{/tikz/clock/distance}*\X,0,0) coordinate (c\X);
 \begin{scope}[canvas is xy plane at z=0]
  \draw (c\X) circle[radius=\pgfkeysvalueof{/tikz/clock/radius}];
  \path ($(c\X)+({-(\X-1)*\pgfkeysvalueof{/tikz/clock/angle increment}}:\pgfkeysvalueof{/tikz/clock/radius})$) coordinate (t\X);
 \end{scope}
\end{scope} 
\draw (c\X|-0,-2.5) circle[radius=\pgfkeysvalueof{/tikz/clock/radius}];
 \ifodd\X
  \draw[-stealth] (t\X) -- (b\X);
  \draw[stealth-] (c\X|-0,-2.5) -- ++ ({-(\X-1)*\pgfkeysvalueof{/tikz/clock/angle increment}}:\pgfkeysvalueof{/tikz/clock/radius}) coordinate(p\X);
 \else
  \draw[stealth-] (t\X) -- (b\X);
  \draw[-stealth] (c\X|-0,-2.5) -- ++ ({-(\X-1)*\pgfkeysvalueof{/tikz/clock/angle increment}}:\pgfkeysvalueof{/tikz/clock/radius})  coordinate(p\X);
 \fi
}
\draw plot[smooth,samples at={1,...,6}] (p\x);
\end{tikzpicture}
\end{document}

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.