I need to construct a Waterfall model diagram like these:
[Tex/LaTex] How to construct a waterfall model diagram by LaTeX in Beamer
beamer
Related Solutions
This is a code for the rotating induction machine field, it can be helpful to understand how to include equations on animations.
You can use one sinusoidal equation to represent the vectors.
If you want the exact animation, you need the spring shape.
If think there is a \draw
command for the spring shape, you just need to change the position of the circles and link the spring between them.
\documentclass[compress]{beamer}
\usepackage{ifthen}
\usepackage{animate}
\usepackage{pgf,tikz}
\usetikzlibrary{shapes,arrows}
\begin{document}
\begin{frame}[fragile]{\secname}{\subsecname}
\begin{center}
\newcounter{angle}
\setcounter{angle}{0}
\begin{animateinline}[loop, poster = first, controls]{30}
\whiledo{\theangle<359}
{
\begin{tikzpicture}
\pgfmathsetmacro{\b}{75}
\pgfmathsetmacro{\a}{15}
\pgfmathsetmacro{\R}{2}
\pgfmathsetmacro{\RR}{3}
\pgfmathsetmacro{\r}{1}
\pgfmathsetmacro{\P}{\R*tan(\b)}
\pgfmathsetmacro{\Q}{\R/cos(\b)}
\pgfmathsetmacro{\p}{\r/tan(\a)}
\pgfmathsetmacro{\q}{\r/sin(\a)}
\pgfmathsetmacro{\rt}{sqrt(3)}
\pgfmathsetmacro{\sa}{sin(\theangle)}
\pgfmathsetmacro{\ca}{cos(\theangle)}
\pgfmathsetmacro{\sb}{sin(\theangle + 120)}
\pgfmathsetmacro{\cb}{cos(\theangle + 120)}
\pgfmathsetmacro{\sc}{sin(\theangle + 240)}
\pgfmathsetmacro{\cc}{cos(\theangle + 240)}
% Definitions
\newcommand{\Cross}{$\mathbin{\tikz [x=1.4ex,y=1.4ex,line width=.2ex] \draw (0,0) -- (1,1) (0,1) -- (1,0);}$}
% Armature
\draw (0,0) circle (\RR);
\fill[color=gray!40] (0,0) circle (\RR);
\draw[line width=2mm, white] (0,0) circle (.75*\RR);
%
\draw [line width=.2ex,color=red] (0,.9*\RR) circle (.2) node[red]{\Cross};
\draw [line width=.2ex,color=red] (0,-.9*\RR) circle (.2);
\filldraw[very thick, color=white!50!red, inner color=red,outer color=white!50!red] (0,-.9*\RR) circle (.1);
\draw [line width=.2ex,color=blue] (-\rt*.45*\RR,-.45*\RR) circle (.2) node[blue]{\Cross};
\draw [line width=.2ex,color=blue] (\rt*.45*\RR,.45*\RR) circle (.2);
\filldraw[very thick, color=white!50!blue, inner color=blue,outer color=white!50!blue] (\rt*.45*\RR,.45*\RR) circle (.1);
\draw [line width=.2ex,color=green] (\rt*.45*\RR,-.45*\RR) circle (.2) node[green]{\Cross};
\draw [line width=.2ex,color=green] (-\rt*.45*\RR,.45*\RR) circle (.2);
\filldraw[very thick, color=white!50!green, inner color=green,outer color=white!50!green] (-\rt*.45*\RR,.45*\RR) circle (.1);
\draw[ultra thick,black,->] (0,0) -- (-.45*\R*\sc-.45*\R*\sb+.9*\R*\sa,-\rt*.45*\R*\sb+\rt*.45*\R*\sc);
\draw[thick,red,->] (0,0) -- (.9*\R*\sa,0);
\draw[thick,green,->] (0,0) -- (-.45*\R*\sb,-\rt*.45*\R*\sb);
\draw[thick,blue,->] (0,0) -- (-.45*\R*\sc,\rt*.45*\R*\sc);
\end{tikzpicture}
\stepcounter{angle}
\ifthenelse{\theangle<359}
{
\newframe
}
{
\end{animateinline}
}
}
\end{center}
\end{frame}
\end{document}
Best Answer
An alternative to Gernot nice answer, in which is employed
chains
TikZ library and connection between nodes are establish in a loop: