# how to fix the positions of random points in latex?

I'm using the presentation mode in beamer. There's a frame about random stars distributed in a rectangle. I made a pause effect on that slide. However, the next frame would give me a different distribution of random stars. How can I fix the positions of that random stars and also keep the pause effect??

\documentclass{beamer}

\mode<presentation> {
\usetheme{boxes}
\usecolortheme{rose}}

\usepackage{graphicx} % Allows including images
\usepackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables
\usepackage{tikz}
\usepackage{xcolor}
\usepackage{pgfplots}
\usepackage{amsmath}
\usepackage{amssymb}

\begin{document}

\begin{frame}
\begin{figure}
\centering
\begin{tikzpicture}[scale=0.7]
\filldraw[fill= blue!40, very thick,opacity=0.8] (0,0) rectangle (6,6);\pause
\draw plot [blue!80, only marks, mark=star, mark size=3, domain=0:6, samples=300] (\x,{0.5*6+0.5*rand*6});\pause
\draw[color=red!80,very thick] (2,1) circle (0.5);
\end{tikzpicture}
\end{figure}

\end{frame}
\end{document}

• I think you want to call \pgfmathsetseed{n} to explicity set the initial seed for the pseudo-random number generator - then it will be the same each time it's drawn. n should be an integer. – Thruston Mar 27 '15 at 17:31
• The macro mentioned by @Thruston should be invoked inside of the tikzpicture. – Steven B. Segletes Mar 27 '15 at 17:41
• Quick and dirty solution? Write your TikZ picture to a file with the standalone package or the exteranalize TikZ library, then bring it in via \includegraphics. – Mike Renfro Mar 27 '15 at 18:50
• Thanks for the help! It works very well! Now the positions are fixed!@Thruston. – Windy Mar 27 '15 at 21:33
• Yes, this is another way to make it happen. Thank you so much, too. @MikeRenfro – Windy Mar 27 '15 at 21:34

Some explanation could be found here. I will do it again because your example is more interesting.

\documentclass{beamer}
\usepackage{pgfplots}

\begin{document}
\makeatletter
\def\pgfmathsaveseed{\xdef\pgfmath@savedseed{\pgfmath@rnd@z}}
\begin{frame}
\beamerframeseed
\centering
\begin{tikzpicture}[scale=1.5]
\filldraw[fill= blue!40, very thick,opacity=0.8] (0,0) rectangle (6,6);\pause
\draw plot[blue!80,only marks,mark=star,mark size=3,domain=0:6,samples=60](\x,{0.5*6+0.5*rand*6});\pause
\draw plot[blue!80,only marks,mark=star,mark size=3,domain=0:6,samples=60](\x,{0.5*6+0.5*rand*6});\pause
\draw plot[blue!80,only marks,mark=star,mark size=3,domain=0:6,samples=60](\x,{0.5*6+0.5*rand*6});\pause
\draw plot[blue!80,only marks,mark=star,mark size=3,domain=0:6,samples=60](\x,{0.5*6+0.5*rand*6});\pause
\draw plot[blue!80,only marks,mark=star,mark size=3,domain=0:6,samples=60](\x,{0.5*6+0.5*rand*6});\pause
\draw[color=red!80,very thick] (2,1) circle (0.5);
\end{tikzpicture}
\end{frame}
\end{document}

• why don't you simply fix the seed? – percusse Mar 28 '15 at 10:23
• @percusse Image that you are working in handout mode (\pause's inactivated), where a beamer document is nothing but an article with specific paper size. Caring about seeds, in this case, is unnecessary and ... umm ... unromantic? So I would like to keep that romance in every mode. One may also write \only<1,3>{\pgfmathsaveseed}\only<2-4>{\pgfmathloadseed} to achieve something fantastic. – Symbol 1 Mar 28 '15 at 11:27
• That explains perfectly my mere existence on this site too :) I meant as a mechanism you can set and unset the seed and it will result in the same mechanism. Didn't mean as a criticism :) – percusse Mar 28 '15 at 12:13