Escribí este script para crear una función que se desliza hacia la derecha y siempre tiene dos puntos del gráfico designados como puntos negros:
\documentclass[tikz]{standalone}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=1.16}
\pgfplotsset{ticks=none}
\begin{document}
\tikzset{declare function={bellshape(\x,\mu,\sigma)=exp(-(\x-\mu)^2/(2*\sigma^2));}}
\usetikzlibrary{intersections}
\foreach \center in {-5,-4.9,...,5}
{
\begin{tikzpicture}
\begin{axis}[scale=3,
width=4cm,
xmin=-3, xmax=3,
ymin=-.05, ymax=1.4,
axis line style={draw=none},
]
\addplot [only marks, samples at={-3,3}]
{bellshape(x,\center,.5)};
\addplot [domain=-5:5, samples=300,color=blue, name path=A]
{bellshape(x,\center,.5)};
\end{axis}
\end{tikzpicture}
}
\end{document}
Que es exactamente lo que pretendía:
Pero también estoy intentando hacer uno para el paquete de ondas que aparece a continuación.
\documentclass[tikz]{standalone}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=1.16}
\pgfplotsset{ticks=none}
\begin{document}
\tikzset{declare function={bellshape(\x,\mu,\sigma)=exp(-(\x-\mu)^2/(2*\sigma^2));}}
\usetikzlibrary{intersections}
\foreach \center in {-350,-320,...,350}
{
\begin{tikzpicture}
\begin{axis}[scale=3,
width=4cm,
xmin=-250, xmax=250,
ymin=-1, ymax=1,
axis line style={draw=none},
]
\addplot [only marks, samples at={-250,250}]
{.1*(bellshape(x,\center-100,25)+bellshape(x,\center-50,25)+bellshape(x,\ center,25)+bellshape(x,\center+50,25)+bellshape(x,\center+100,25))*sin( deg(20*pi*x))};
\addplot [domain=-600:600,samples=400,color=blue]
{.1*(bellshape(x,\center-100,25)+bellshape(x,\center-50,25)+bellshape(x,\ center,25)+bellshape(x,\center+50,25)+bellshape(x,\center+100,25))*sin( deg(20*pi*x))};
\end{axis}
\end{tikzpicture}
}
\end{document}
Seguí la misma idea (coloqué la misma función de la línea azul en la función solo para los dos puntos negros), pero no obtengo ningún movimiento de los dos puntos negros. Cuando intenté eliminar la función "sin", los puntos negros se mueven a las funciones "en forma de campana", así que creo que el error debe estar en la función sin. ¿Alguien tiene alguna idea de qué podría remediar esto?
Respuesta1
Hay algunas cosas que no entiendo en su código, la más importante la parametrización del paquete de ondas. En su caso, es una suma de gaussianos, cada uno de los cuales se mueve con la misma velocidad, multiplicada por un totalestacionariofase. ¿Por qué? En cualquier caso, es por eso que tienes el efecto que observas. La samples at
gráfica se multiplica por *sin(deg(20*pi*x))
, que es cero en x=-250
y x=250
.
Yo elegiría un paquete de ondas posiblemente más físico.
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\pgfplotsset{ticks=none}
\begin{document}
\tikzset{declare function={bellshape(\x,\mu,\sigma)=exp(-(\x-\mu)^2/(2*\sigma^2));
wavepacket(\x,\mu,\sigma,\k)=bellshape(\x,\mu,\sigma)*sin(\k*(\x-\mu));}}
\foreach \X in {-350,-320,...,350}
{
\begin{tikzpicture}
\begin{axis}[%scale=3,
width=4cm,
xmin=-250, xmax=250,
ymin=-1, ymax=1,
axis line style={draw=none},
]
\addplot [only marks, samples at={-250,250}]
{0.1*(wavepacket(x,\X-100,25,4)+
wavepacket(x,\X-50,25,4)+
wavepacket(x,\X-25,25,4)+
wavepacket(x,\X+25,25,4)+
wavepacket(x,\X+50,25,4)+
wavepacket(x,\X+100,25,4))};
\addplot [domain=-250:250,samples=251,color=blue,smooth]
{0.1*(wavepacket(x,\X-100,25,4)+
wavepacket(x,\X-50,25,4)+
wavepacket(x,\X-25,25,4)+
wavepacket(x,\X+25,25,4)+
wavepacket(x,\X+50,25,4)+
wavepacket(x,\X+100,25,4))};
\end{axis}
\end{tikzpicture}
}
\end{document}