![ランダムに色付けされた円の列を表示する方法](https://rvso.com/image/420059/%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E3%81%AB%E8%89%B2%E4%BB%98%E3%81%91%E3%81%95%E3%82%8C%E3%81%9F%E5%86%86%E3%81%AE%E5%88%97%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.png)
ランダムに色付けされた円を 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 など)