Como mostrar linhas de círculos coloridos aleatoriamente

Como mostrar linhas de círculos coloridos aleatoriamente

Eu gostaria de ter 5 linhas de círculos coloridos aleatoriamente. Aqui está meu MWE:

\documentclass{beamer}
\beamertemplatenavigationsymbolsempty
\setbeamersize{text margin left=10mm,text margin right=5mm} 
\setbeamertemplate{frametitle}[default][center]
\usepackage{tikz}

\newcommand{\tikzcircle}[2][red,fill=red]{\tikz[baseline=-0.5ex]\draw[#1,radius=#2] (0,0) circle ;}%


\begin{document}
\begin{frame}{The counting problem}
\foreach \x in {1,2,...,100}  {\tikzcircle{2pt}}
\end{frame}

\end{document}

Não tenho certeza de como escolher as cores aleatoriamente ou como fazer com que os círculos se enrolem para que preencham o espaço que o texto normalmente preencheria.

Se possível, seria ótimo se eu pudesse escolher cores aleatoriamente com reposição de um conjunto cujo tamanho eu possa especificar. Por exemplo, escolha as cores aleatoriamente com reposição de um conjunto de 10 cores.

Responder1

Você pode começar com algo assim. O código para \randomcolorfoi retirado deGere cores aleatórias de uma forma que funcione com pdflatex e lualatex

\documentclass{beamer}

\beamertemplatenavigationsymbolsempty
\setbeamersize{text margin left=10mm,text margin right=5mm} 
\setbeamertemplate{frametitle}[default][center]
\usepackage{tikz}

\newcommand{\randomcolor}{%
    \pgfmathsetmacro{\R}{random(0,10000)/10000}%
    \pgfmathsetmacro{\G}{random(0,10000)/10000}%
    \pgfmathsetmacro{\B}{random(0,10000)/10000}%
    \definecolor{randomcolor}{rgb}{\R,\G,\B}%
}

\newcommand{\tikzcircle}[1]{\randomcolor\tikz[baseline=-0.5ex]{\fill[randomcolor,radius=#1]circle;}}%


\pgfmathsetseed{\number\pdfrandomseed} % seed for random generator


\begin{document}

\begin{frame}{The counting problem}

\foreach \j in {1,2,...,5} {\foreach \i in {1,2,...,10} {\tikzcircle{.05\textwidth}}\\}

\end{frame}
\end{document}

insira a descrição da imagem aqui

Atualização: cores limitadas

O código a seguir mostra uma alternativa para selecionar cores de um conjunto limitado. O conjunto é definido em um TikZarray e a cor é selecionada com um índice aleatório.

\documentclass{beamer}

\beamertemplatenavigationsymbolsempty
\setbeamersize{text margin left=10mm,text margin right=5mm} 
\setbeamertemplate{frametitle}[default][center]
\usepackage{tikz}

\def\mycolors{{"red","green","blue","brown","pink","violet","orange","cyan","yellow"}}
    
\newcommand{\tikzcircle}[1]{%
    \pgfmathsetmacro{\mycolorindex}{random(0,8)}%
    \pgfmathsetmacro{\mycolor}{array(\mycolors,\mycolorindex)}%
    \tikz[baseline=-0.5ex]{\fill[\mycolor,radius=#1]circle;}}%

\pgfmathsetseed{\number\pdfrandomseed} % seed for random generator

\begin{document}

\begin{frame}{The counting problem}

\foreach \j in {1,2,...,5}{\foreach \i in {1,2,...,10}{\tikzcircle{.05\textwidth}}\\}

\end{frame}
\end{document}

insira a descrição da imagem aqui

Responder2

Tente brincar com os parâmetros do gerador de números aleatórios, mantendo a mesma semente.

Por exemplo

\documentclass{beamer}

\beamertemplatenavigationsymbolsempty
\setbeamersize{text margin left=10mm,text margin right=5mm} 
\setbeamertemplate{frametitle}[default][center]
\usepackage{tikz}

\newcommand{\randomcolor}{%
    \pgfmathsetmacro{\R}{random(0,1)/2}%
    \pgfmathsetmacro{\G}{random(0,1)/2}%
    \pgfmathsetmacro{\B}{random(0,1)/1}%
    \definecolor{randomcolor}{rgb}{\R,\G,\B}%
}

\newcommand{\tikzcircle}[1]{\randomcolor\tikz[baseline=-0.5ex]{\fill[randomcolor,radius=#1]circle;}}%


%\pgfmathsetseed{\number\pdfrandomseed} % seed for random generator


\begin{document}

\begin{frame}{The counting problem}

\foreach \j in {1,2,...,5}{\foreach \i in {1,2,...,10}{\noindent\tikzcircle{.05\textwidth}}\\}

\end{frame}
\end{document}
    

produzirá 2x2x2 = 8 cores diferentes. (R= 0 ou 0,5, etc.)

menos cores

informação relacionada