![무작위로 색상이 지정된 원의 행을 표시하는 방법](https://rvso.com/image/420059/%EB%AC%B4%EC%9E%91%EC%9C%84%EB%A1%9C%20%EC%83%89%EC%83%81%EC%9D%B4%20%EC%A7%80%EC%A0%95%EB%90%9C%20%EC%9B%90%EC%9D%98%20%ED%96%89%EC%9D%84%20%ED%91%9C%EC%8B%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%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 등)