Beamer 随机分布的非重叠图像

Beamer 随机分布的非重叠图像

这个问题扩展了已经回答过的问题:在投影机中随机排列图像。由于发布正确答案的人似乎不再活跃,因此我正在创建一个新问题。

问题是:有没有办法让节点不互相重叠,但仍然随机分布在幻灯片上?

我尝试找到一个结构来存储节点,然后检查重叠并尝试移动它们,但我没有找到正确的数据结构。开始认为这可能是不可能的。

答案1

修改https://tex.stackexchange.com/a/87518/190633

\documentclass{beamer}
\usepackage{tikz}

\def\xlist{4}
\def\ylist{4}

\newcommand{\fillrandomly}[4]{
    \pgfmathsetmacro\diameter{#3*2}
%    \draw (0,0) rectangle (#1,#2);
    \foreach \i in {1,...,#4}{
        \pgfmathsetmacro\x{rnd*#1}
        \pgfmathsetmacro\y{rnd*#2}
        \xdef\collision{0}
        \foreach \element [count=\i] in \xlist{
            \pgfmathtruncatemacro\j{\i-1}
            \pgfmathsetmacro\checkdistance{ sqrt( ({\xlist}[\j]-(\x))^2 + ({\ylist}[\j]-(\y))^2 ) }
            \ifdim\checkdistance pt<\diameter pt
                \xdef\collision{1}
                \breakforeach
            \fi
        }
        \ifnum\collision=0
            \xdef\xlist{\xlist,\x}
            \xdef\ylist{\ylist,\y}
            \node at (\x,\y) {\includegraphics[width=1cm]{example-image}};
%            \draw [red, thick] (\x,\y) circle [radius=#3];
        \fi 

    }
}

\begin{document}

\begin{frame}
\begin{tikzpicture}
\pgfmathsetseed{2}
\fillrandomly{10}{5}{0.65}{100}

\end{tikzpicture}
\end{frame}
\end{document}

在此处输入图片描述

相关内容