Setup Menus in Admin Panel

  • LOGIN
  • No hay productos en el carrito.

Rotación de ejes: Animación en LaTeX2e

Te comparto el código fuente para generar una animación en LaTeX2e donde se muestra una rotación de los ejes y algunos trazos auxiliares para explicar la deducción de las ecuaciones de transformación de ejes tras una rotación.

Te comparto el código fuente de una animación que elaboré usando LaTeX2e.

Te explico grosso modo el código fuente.

El documento es de la clase beamer. Empiezo cargando los paquetes que se requieren para generar la animación (TikZ, ifthen y animate). Indico las opciones de las diapositivas de la presentación en beamer y después indico información sobre el archivo en un comentario de varias líneas.

Inicio el contador c, que me sirve para indicar el valor del ángulo que se rotan los ejes en la imagen (frame) actual.
Inicio el ciclo while que se repetirá mientras el valor del contador c sea menor que 45. Después inicio la figura usando el ambiente tikzpicture.
Primero calculo los puntos de interés: dónde están las coordenadas de P(x,y) en el sistema de coordenadas rotado y las longitudes de los segmentos que me ayudan a elaborar la figura para mostrar las distancias que se involucran en las ecuaciones de la transformación de coordenadas.

La figura empieza con las marcas de ángulo. Después trazo los ejes cartesianos, y los ejes rotados (tras la rotación). Después trazo las líneas que me ayudan en la explicación de la deducción de las ecuaciones de transformación de coordenadas tras la rotación.

Finalmente aumento el contador c en 1 para cambiar el ángulo de rotación en la animación y vuelvo a iniciar el ciclo hasta que el valor del contador sea igual a 45.

A continuación se enlista el código fuente.

\documentclass[10pt,aspectratio=169]{beamer}
\usepackage{tikz}
\usepackage{ifthen}
\usepackage{animate}
%
\usetheme{Warsaw} 
\usecolortheme{whale}
\author{Efra\'in Soto Apolinar}
\title{www.aprendematematicas.org.mx}
%
% File name: RotacionAnimacion.tex
% Description:
% This animation helps explain the deduction of
% the transformation equations of the rotation of a coordinate system.
% 
% Date of creation: July, 27th, 2022.
% Date of last modification: July, 27th, 2022.
% 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/
% I sincerely thank you for abiding the terms of use.
%
\newcounter{c}
\setcounter{c}{15}
%
\begin{document}
%
%
%
\begin{frame}[fragile]{Rotation of the coordinate system}{}{}
\begin{center}
\begin{animateinline}[loop, poster = first, controls]{10}
%
\whiledo{\thec<45}{
	%
	%
	%
	\begin{tikzpicture}
		% The coordinates of the point P
		\pgfmathsetmacro{\px}{3.275}
		\pgfmathsetmacro{\py}{5.1}
		% Calculate the distance from P to the origin
		\pgfmathsetmacro{\d}{sqrt(\px * \px + \py * \py)}
		% ... for distance indications
		\pgfmathsetmacro{\dx}{0.35}
		% The measure of the angle of rotation
		\pgfmathsetmacro{\angulo}{5+\thec}
		\pgfmathsetmacro{\angulof}{90+\angulo}
		\pgfmathsetmacro{\angulofn}{270+\angulo}
		\pgfmathsetmacro{\rnodo}{0.75}
		% Calculate the position of node 1 (angle theta)
		\pgfmathsetmacro{\nodox}{(\rnodo+0.15) * cos(\angulo * 0.5)}
		\pgfmathsetmacro{\nodoy}{(\rnodo+0.15) * sin(\angulo * 0.5)}
		% Calculate the position of node 2 (angle theta + 90)
		\pgfmathsetmacro{\nodx}{(\rnodo+0.15) * cos(90+\angulo * 0.5)}
		\pgfmathsetmacro{\nody}{(\rnodo+0.15) * sin(90+\angulo * 0.5)}
		% Auxiliary distances
		\pgfmathsetmacro{\pxuno}{\px * cos(\angulo)}
		\pgfmathsetmacro{\pxdos}{\py * sin(\angulo)}
		\pgfmathsetmacro{\pyuno}{\py * cos(\angulo)}
		\pgfmathsetmacro{\pydos}{\px * sin(\angulo)}
		% The coordinates of the point after the rotation
		\pgfmathsetmacro{\pxp}{\pxuno + \pxdos}
		\pgfmathsetmacro{\pyp}{-\pydos + \pyuno}
		% Calculate the coordinates of the projection of P on the x' axis
		\pgfmathsetmacro{\qx}{\pxp * cos(\angulo)}
		\pgfmathsetmacro{\qy}{\pxp * sin(\angulo)}
		% Calculate the coordinates of the projection of P on the y' axis
		\pgfmathsetmacro{\rx}{\pyp * cos(\angulo+90)}
		\pgfmathsetmacro{\ry}{\pyp * sin(\angulo+90)}
		\draw[white] (-\py,\py) rectangle (-1,\py+1);
		% Angle mark
		\draw[gray,thick] (0:\rnodo cm) arc (0:\angulo:\rnodo cm);
		\node[blue] at (\nodox,\nodoy) {\footnotesize$\theta$};
		\draw[gray,thick] (90:\rnodo cm) arc (90:\angulof:\rnodo cm);
		\node[blue] at (\nodx,\nody) {\footnotesize$\theta$};
		% Other angle marks formed with auxiliary lines
		\node[blue,shift={(\px,0)}] at (\nodx,\nody) {\footnotesize$\theta$};
		\node[blue,shift={(\px,\py)}] at ([rotate=180]\nodox,\nodoy) {\footnotesize$\theta$};
		% Cartesian axes
		\draw[thick,->] (0,0) -- (6.0,0) node[right] {$x$};
		\draw[thick,->] (0,0) -- (0,5.75) node[above] {$y$};
		% The rotated axes
		\begin{scope}[rotate=\angulo]
			\draw[blue,thick,->] (0,0) -- (6.0,0) node[right] {$x'$};
			\draw[blue,thick,->] (0,0) -- (0,5.75) node[above] {$y'$};
			\draw[thick] (\pxp,2pt) -- (\pxp,-2pt);
			\draw[thick] (2pt,\pyp) -- (-2pt,\pyp);
		\end{scope}
		%
		\fill[red] (\px,\py) circle (1pt) node [black,above]{$P$};
		% Lines indicating the position of the coordinates of P on the axes
		\draw[dash dot dot] (\px,\py) -- (\px,0) node [black,below] {\footnotesize$x$};
		\draw[dash dot dot] (\px,\py) -- (0,\py) node [black,left] {\footnotesize$y$};
		\draw[thick] (\px,2pt) -- (\px,-2pt);
		\draw[thick] (2pt,\py) -- (-2pt,\py);
		% I indicate the points on the rotated axes
		\draw[blue,dash dot dot] (\px,\py) -- (\qx,\qy) node [black,below] {\footnotesize$x'$};
		\draw[blue,dash dot dot] (\px,\py) -- (\rx,\ry) node [black,left] {\footnotesize$y'$};
		% Lines to indicate measurements
		\draw[cyan,help lines,shift={(\px,0)},rotate=\angulo] (0,0) -- (0,\pyuno);
		\draw[cyan,help lines,shift={(0,\py)},rotate=\angulof] (0,0) -- (0,\pxdos);
		\draw[cyan,help lines,shift={(0,\py)},rotate=\angulofn] (0,0) -- (\pydos,0);
		\draw[cyan,<->,rotate=\angulo,shift={(0,\dx)}] (0,0) -- (\pxuno,0) node[midway,fill=white,rotate=\angulo] {\tiny$x\,\cos(\theta)$};
		\draw[cyan,<->,shift={(\px,\py)},rotate=\angulo] (0,-\dx) -- (-\pxdos,-\dx) node[midway,fill=white,rotate=\angulo] {\tiny$y\,\sin(\theta)$};
		\draw[cyan,<->,rotate=\angulo,shift={(\dx,0)}] (0,0) -- (0,\pyuno) node[midway,fill=white,rotate=\angulofn] {\tiny$y\,\cos(\theta)$};
		\draw[cyan,<->,shift={(0,\py)},rotate=\angulofn] (0,-4*\dx) -- (\pydos,-4*\dx) node[midway,fill=white,rotate=\angulofn] {\tiny$x\,\sin(\theta)$};
		%
	\end{tikzpicture}
	%
	%
	%
	\stepcounter{c}
	%
	\ifthenelse{\thec<45}{
		\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 "Rotación de ejes: Animación en LaTeX2e"

    Leave a Message

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

    X