0

I have drawn an image in latex using tikz as given by the code below. The image generated via the below code comprises of a rectangular block having a text E(s) written inside it. I want to make this rectangular box along with the text inside it to blink and shine brightly (scintillating). How can I do it?

\documentclass[compress, xcolor=table, usenames,dvipsnames]{beamer}
 \usepackage{tikz}
 \begin{document}

\tikzset{every picture/.style={line width=0.75pt}} %set default line width to 0.75pt        
\begin{frame}{Figure}

\begin{tikzpicture}[x=0.75pt,y=0.75pt,yscale=-1,xscale=1]
%uncomment if require: \path (0,235); %set diagram left start at 0, and has 
height of 235

%Rounded Rect [id:dp22728745820859309] 
\draw   (134,66.75) .. controls (134,62.33) and (137.58,58.75) .. 
(142,58.75) -- (196,58.75) .. controls (200.42,58.75) and (204,62.33) .. 
(204,66.75) -- (204,90.75) .. controls (204,95.17) and (200.42,98.75) .. 
(196,98.75) -- (142,98.75) .. controls (137.58,98.75) and (134,95.17) .. 
(134,90.75) -- cycle ;
%Rounded Rect [id:dp23074367111159821] 
\draw   (254,64.75) .. controls (254,60.33) and (257.58,56.75) .. 
(262,56.75) -- (316,56.75) .. controls (320.42,56.75) and (324,60.33) .. 
(324,64.75) -- (324,88.75) .. controls (324,93.17) and (320.42,96.75) .. 
(316,96.75) -- (262,96.75) .. controls (257.58,96.75) and (254,93.17) .. 
(254,88.75) -- cycle ;
%Straight Lines [id:da3785057523496602] 
\draw    (205,77.75) -- (251.5,76.79) ;
\draw [shift={(253.5,76.75)}, rotate = 538.8199999999999] [color={rgb, 
    255:red, 0; green, 0; blue, 0 }  ][line width=0.75]    (10.93,-3.29) .. 
controls (6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and 
(6.95,1.4) .. (10.93,3.29)   ;

%Shape: Circle [id:dp7405273795099738] 
\draw   (350,76.5) .. controls (350,66.7) and (357.95,58.75) .. 
(367.75,58.75) .. controls (377.55,58.75) and (385.5,66.7) .. (385.5,76.5) 
.. controls (385.5,86.3) and (377.55,94.25) .. (367.75,94.25) .. controls 
(357.95,94.25) and (350,86.3) .. (350,76.5) -- cycle ;
%Straight Lines [id:da4768143479707079] 
\draw    (323.75,77) -- (349.25,77) ;
\draw [shift={(351.25,77)}, rotate = 180] [color={rgb, 255:red, 0; green, 
    0; blue, 0 }  ][line width=0.75]    (10.93,-3.29) .. controls (6.95,-1.4) 
and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) .. 
(10.93,3.29)   ;

%Shape: Circle [id:dp9725542364076398] 
\draw   (70,78.5) .. controls (70,68.7) and (77.95,60.75) .. (87.75,60.75) 
.. controls (97.55,60.75) and (105.5,68.7) .. (105.5,78.5) .. controls 
(105.5,88.3) and (97.55,96.25) .. (87.75,96.25) .. controls (77.95,96.25) 
and (70,88.3) .. (70,78.5) -- cycle ;
%Straight Lines [id:da10367925110615261] 
\draw    (105.5,78.5) -- (135.75,78.5) ;
\draw [shift={(137.75,78.5)}, rotate = 180] [color={rgb, 255:red, 0; 
    green, 0; blue, 0 }  ][line width=0.75]    (10.93,-3.29) .. controls 
(6.95,-1.4) and (3.31,-0.3) .. (0,0) .. controls (3.31,0.3) and (6.95,1.4) 
.. (10.93,3.29)   ;

%Straight Lines [id:da3384320385828452] 
\draw    (87.75,136) -- (341.75,136) ;
%Straight Lines [id:da9706282263267894] 
\draw    (341.75,136) -- (341.75,77) ;

%Straight Lines [id:da01968558683101662] 
\draw    (87.75,137) -- (87.75,96.25) ;



% Text Node
\draw (289,76.75) node  [align=left] {P(s)};
% Text Node
\end{tikzpicture}
\end{frame}

\end{document}
  • 3
    With the animate package it is possible to do this: ctan.org/pkg/animate – AndréC Nov 26 '19 at 5:54
  • 1
    You show an article document. However, the title is on a beamer document. In the beamer class it is not necessary to load animate. Rather, beamer has its own means to do animations. – Schrödinger's cat Nov 26 '19 at 6:09
  • I have replaced it with beamer. Please tell me, how exactly can I do with the animate package – ShiS Nov 26 '19 at 6:30
  • I have understood the scintillating effect, but how can I make the text P(s) to blink too? – ShiS Nov 27 '19 at 11:03
1

As I said in the comment, a beamer document has its built-in tools for doing animations. You do not need the animate package here. If you compile

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{chains}
\newcount\mymix
\begin{document}

\begin{frame}[t]
\frametitle{A scintillator}
\animate<2-22>
\animatevalue<1-21>{\mymix}{0}{20}
\centering
\begin{tikzpicture}[circ/.style={circle,inner sep=3.2mm,draw},
 box/.style={draw,rounded corners=3pt,minimum width=16mm,minimum height=8mm},
 line width=0.75pt]
 \begin{scope}[start chain=going right,nodes={on chain,join},
    every join/.style={-stealth}]
  \node[circ](C1){};
  \pgfmathtruncatemacro{\mixture}{10*ifthenelse(\the\mymix<11,\the\mymix,20-\the\mymix)}
  \node[box](B1){$\mathsf{C}(\mathsf{s})$};
  \node[box,fill=yellow!\mixture](B2){$\mathsf{P}(\mathsf{s})$};
  \node[circ](C2){};
 \end{scope}
 \path (B2.east) -- coordinate (aux)(C2.west) ;
 \draw[-stealth](aux) --++ (0,-1cm) -| (C1);
\end{tikzpicture}
\end{frame}
\end{document} 

and view it in full screen mode on Acrobat Reader, you will see

enter image description here

Notice that I used the opportunity to shorten your TikZ code, and I hope I selected the rectangle you wanted to scintillate. Of course, one can change the details of the animation. You can change the rate with \transduration.

However, you can of course use the animate package. Translating the above to a code that uses this package yields

\documentclass{beamer}
\usepackage{animate}
\usepackage{tikz}
\usetikzlibrary{chains}
\begin{document}

\begin{frame}[t]
\frametitle{A scintillator}
\begin{animateinline}[autoplay,loop]{1}
  \multiframe{20}{it=0+1}{%
    \begin{tikzpicture}[circ/.style={circle,inner sep=3.2mm,draw},
   box/.style={draw,rounded corners=3pt,minimum width=16mm,minimum height=8mm},
   line width=0.75pt]
   \begin{scope}[start chain=going right,nodes={on chain,join},
      every join/.style={-stealth}]
    \node[circ](C1){};
    \pgfmathtruncatemacro{\mixture}{10*ifthenelse(\it<11,\it,20-\it)}
    \node[box](B1){$\mathsf{C}(\mathsf{s})$};
    \node[box,fill=yellow!\mixture](B2){$\mathsf{P}(\mathsf{s})$};
    \node[circ](C2){};
   \end{scope}
   \path (B2.east) -- coordinate (aux)(C2.west) ;
   \draw[-stealth](aux) --++ (0,-1cm) -| (C1);
  \end{tikzpicture}}
\end{animateinline}  
\end{frame}
\end{document}

In both cases I do not know what precisely you mean by scintillating, so you may have to adjust some parameters.

  • This is exactly what I meant by scintillating, however the first solution is showing 22 separate slides. Also, can I make the text P(s) to blink also? – ShiS Nov 26 '19 at 7:36
  • 1
    @ShiS Yes, but when you put it in full screen mode in Acrobat Reader, these slides will animate automatically from slide 2 on. This is how beamers built-in animations work (I am using them all the time, maybe not for loops like blinking but for most other purposes). – Schrödinger's cat Nov 26 '19 at 7:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.