Evolucione el contenido a través de diapositivas proyectores

Evolucione el contenido a través de diapositivas proyectores

En este ejemplo:

\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
  \begin{overlayarea}{\linewidth}{0.7\paperheight}
    \centering
    \begin{tikzpicture}
      \coordinate (O) at (0, 0);
      \coordinate (A) at (5, 5);
      \coordinate (B) at (-5, 5);
      \only<1>
          {
            \draw (O) -- (B);
          }
          \only<2>
              {
                \draw (O) -- (B);
                \draw (O) -- (A);
              }
              \only<3>
                  {
                    \draw (O) -- (B);
                    \draw (O) -- (A);
                    \draw (A) -- (B);
                  }
    \end{tikzpicture}
  \end{overlayarea}
\end{frame}
\end{document}

A lo largo de las diapositivas presento una imagen cada vez más compleja:

ingrese la descripción de la imagen aquí

Sin embargo:

  1. en cada diapositiva vuelvo a dibujar todo lo que se dibujó en la diapositiva anterior. ¿Cómo transferir contenido de la diapositiva anterior?

  2. La línea de la diapositiva 1 se desplaza con respecto a la misma línea de las diapositivas siguientes. Cómo hacer cumplir el mismo sistema de referencia en cada diapositiva.

Respuesta1

La solución puede ser usar \onslide:

\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
    \centering
    \begin{tikzpicture}
      \coordinate (O) at (0, 0);
      \coordinate (A) at (5, 5);
      \coordinate (B) at (-5, 5);
\onslide<1->{
    \draw (O) -- (B);
    }
\onslide<2->{
    \draw (O) -- (A);
    }
\onslide<3->{
    \draw (A) -- (B);
    }
    \end{tikzpicture}
\end{frame}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

overlay-beamer-stylesestá hecho para esto. A diferencia del uso de \only, esto generalmente evita saltos sin la necesidad de agregar un cuadro delimitador codificado cuyas coordenadas debe adivinar y que debe ajustar si decide agregar rutas más adelante.

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{overlay-beamer-styles}
\begin{document}
\begin{frame}
  \begin{overlayarea}{\linewidth}{0.7\paperheight}
    \centering
    \begin{tikzpicture}
      \coordinate (O) at (0, 0);
      \coordinate (A) at (5, 5);
      \coordinate (B) at (-5, 5);
      \draw (O) -- (B);
      \draw[visible on=<2->] (O) -- (A);
      \draw[visible on=<3->] (A) -- (B);
    \end{tikzpicture}
  \end{overlayarea}
\end{frame}
\end{document}

ingrese la descripción de la imagen aquí

Si desea que las uniones de líneas se vean bien, tal vez algo como esto sea mejor. (En el caso actual es necesario hacer zoom para ver la diferencia, pero en general esto es mejor en mi humilde opinión).

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{overlay-beamer-styles}
\begin{document}
\begin{frame}
  \begin{overlayarea}{\linewidth}{0.7\paperheight}
    \centering
    \begin{tikzpicture}
      \coordinate (O) at (0, 0);
      \coordinate (A) at (5, 5);
      \coordinate (B) at (-5, 5);
      \draw[visible on=<1>] (O) -- (B);
      \draw[visible on=<2>] (B) -- (O) -- (A);
      \draw[visible on=<3->] (B) -- (O) -- (A) -- cycle;
    \end{tikzpicture}
  \end{overlayarea}
\end{frame}
\end{document}

ingrese la descripción de la imagen aquí

Si tienes muchos caminos con los que quieres jugar, puedes definir un estilo accumulate pathque te ayude a acumular estos caminos. Simplemente dibuja estos caminos, y siempre que desee que este y todos los siguientes aparezcan solo en el siguiente cuadro, debe agregar vis+. No necesitas ningún ámbito ni nada, solo vis+.

\documentclass{beamer}
\usepackage{tikz}
\newcounter{Viesturs-step}
\resetcounteronoverlays{Viesturs-step}%
\usetikzlibrary{overlay-beamer-styles}
\tikzset{accumulate path/.style={/utils/exec=\setcounter{Viesturs-step}{#1},
every path/.append style={visible on=<\number\value{Viesturs-step}->}},
accumulate path/.default=1,
vis+/.style={/utils/exec=\stepcounter{Viesturs-step},
visible on=<\number\value{Viesturs-step}->}}
\begin{document}
\begin{frame}[t]
    \centering
    \begin{tikzpicture}[accumulate path]
      \coordinate (O) at (0, 0);
      \coordinate (A) at (5, 5);
      \coordinate (B) at (-5, 5);
      \draw (O) -- (B);
      \draw[red] (O) to[bend left] (B);
      \draw[vis+] (O) -- (A);
      \draw[red] (O)  to[bend right]  (A);
      \draw[vis+] (A) -- (B);
      \draw[red] (A)  to[bend right]  (B);
    \end{tikzpicture}
\end{frame}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta3

\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
  \begin{overlayarea}{\linewidth}{0.7\paperheight}
    \centering
    \begin{tikzpicture}
    \useasboundingbox(-5.5,-.5)rectangle(6,5.5);% 
      \coordinate (O) at (0, 0);
      \coordinate (A) at (5, 5);
      \coordinate (B) at (-5, 5);

            \draw<1-> (O) -- (B);
            \draw<2-> (O) -- (A);
            \draw<3> (A) -- (B);
    \end{tikzpicture}
  \end{overlayarea}
\end{frame}
\end{document}

captura de pantalla

información relacionada