
Te comparto el código fuente de una figura que elaboré usando TikZ de LaTeX2e para generar una animación de un patrón de movimiento con forma de ola con base en el movimiento circular usando Beamer, TikZ y animate.
Te explico grosso modo el código fuente.
Empiezo cargando los paquetes que se requieren para generar la figura. Indico información sobre el archivo en un comentario de varias líneas.
El contador angulo
se utiliza para calcular el ángulo en coordenadas rectangulares de la posición del punto en cada círculo.
El contador paso
se utiliza como incremento entre valores sucesivos del contador angulo
.eje x.
Utilizo un ciclo while
para generar la animación.
Se definen algunas variables.
\r
es el radio de cada círculo dibujado en color gris.\factor
ayuda a calcular el ángulo de defasamiento en cada círculo.\xf
Máximo valor de x en la gráfica.\yx
Máximo valor de y en la gráfica.
\foreach
anidada, una para x
y la otra para y
, calculo la posición de cada punto en cada círculo, de manera que dé la apariencia de movimiento a través del defasamiento del punto en cada círculo.Finalmente, dibujo un rectángulo de color azul claro (cyan) para enmarcar la animación.
A continuación se enlista el código fuente.
\documentclass[10pt,aspectratio=169]{beamer} \usepackage{tikz} \usepackage{ifthen} \usepackage{animate} % Beamer \usetheme{Warsaw} \usecolortheme{whale} \author{Efraín Soto Apolinar} \title{www.aprendematematicas.org.mx} % % Filename: circular-patterns-animation.tex % Description: % An animation to simulate a wave-like motion % using circular motion. % % Date of creation: October, 5th, 2023. % Date of last modification: October, 5th, 2023. % Author: Efraín Soto Apolinar. % https://www.aprendematematicas.org.mx/author/efrain-soto-apolinar/instructing-courses/ % Terms of use: % https://creativecommons.org/licenses/by-nc-sa/4.0/ % Your commitment to the terms of use is greatly appreciated. % \newcounter{angulo} \setcounter{angulo}{0} \newcounter{paso} \setcounter{paso}{10} % \begin{document} % % % \begin{frame}[fragile]{Patrones circulares}{}{} \begin{center} \begin{animateinline}[loop, poster = first, controls]{20} % \whiledo{\theangulo<360}{ % % Source of the idea: % https://x.com/pickover/status/1709715236922564897?s=20 % \begin{tikzpicture} \pgfmathsetmacro{\r}{0.475} \pgfmathsetmacro{\factor}{30.0} \pgfmathsetmacro{\xf}{12.0} \pgfmathsetmacro{\yf}{5.0} % The circles and points \foreach \x in {0,0.5,...,\xf}{ \foreach \y in {0,0.5,...,\yf}{ \pgfmathsetmacro{\px}{\r * cos(\theangulo + \factor * (\x + \y))} \pgfmathsetmacro{\py}{\r * sin(\theangulo + \factor * (\x + \y))} % \draw[gray] (\x,\y) circle (\r cm); \fill[blue,shift={(\x,\y)}] (\px,\py) circle (1pt); } } % \draw[cyan,very thick] (-0.25 - \r,-0.25 - \r) rectangle (\xf + \r + 0.25, \yf + \r + 0.25); \end{tikzpicture} % \addtocounter{angulo}{\thepaso} % \ifthenelse{\theangulo<360}{ \newframe }{ \end{animateinline}\relax } } \end{center} \end{frame} % % % \end{document} |
El resultado final se muestra a continuación.
Si aún no conoces LaTeX2e, te invito a aprenderlo con nuestro curso en línea gratuito, titulado LaTeX2e para principiantes.
0 responses on "Movimiento circular y olas"