我想要 5 行隨機顏色的圓圈。這是我的 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}
我不知道如何隨機選擇顏色或如何讓圓圈換行,以便它們填充文字通常填充的空間。
如果可能的話,如果我可以從可以指定尺寸的集合中隨機選擇顏色並進行替換,那就太好了。例如,從一組 10 種顏色中隨機選擇並取代顏色。
答案1
你可以從這樣的事情開始。的程式碼\randomcolor
取自以適用於 pdflatex 和 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}
更新:顏色有限
以下程式碼顯示了從有限集合中選擇顏色的替代方法。該集合被定義為一個TikZ
數組,並使用隨機索引選擇顏色。
\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}
答案2
嘗試使用隨機數產生器的參數,同時保持相同的種子。
例如
\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}
將產生 2x2x2 = 8 種不同的顏色。 (R=0或0.5等)