在页面上随机均匀分布一些公式或文本

在页面上随机均匀分布一些公式或文本

假设您有 n 个小文本或公式的变体,如下所示:

% Formula 1
\begin{align}
      v(t_o) = \lim_{h \to 0} \frac{v(t_0 + h) - v(t_0)}{h}
\end{align}

% Formula 2
\begin{align}
      v(t_o) = \lim_{h \to 0} \frac{v(t_0 + \Delta t) - v(t_0)}{\Delta t}
\end{align}

%...

% Formula n
%...

是否可以将这些公式随机均匀地分布在页面上,并将公式随机旋转 +- x 度。公式不得重叠。

答案1

根据@Leo 的建议,下面是如何在 Tikz 中执行此操作的开始:

\usepackage{tikz}

\makeatletter

\pgfkeys{/rotatednodes/.cd, width/.initial=10cm, 
  height/.initial=10cm, maxrotation/.initial=20}
\newcount\@nodenum

\newcommand{\rotatednodes}[2][]{%
\pgfkeys{/rotatednodes/.cd, #1}
\begin{tikzpicture}[x=\pgfkeysvalueof{/rotatednodes/width}, 
                    y=\pgfkeysvalueof{/rotatednodes/height}]
\@nodenum=0
\def\@eqlist{#2}
\foreach\eq in \@eqlist{
  \advance\@nodenum by 1
  \pgfmathrandominteger{\x}{0}{100}
  \pgfmathrandominteger{\y}{0}{100}
  \pgfmathrandominteger{\r}{-\pgfkeysvalueof{/rotatednodes/maxrotation}}%
    {\pgfkeysvalueof{/rotatednodes/maxrotation}}
 \node[rotate=\r] (randomnode_\number\@nodenum) at (\x/100,\y/100) {\eq};
}
\end{tikzpicture}
}

\makeatother

然后你可以像这样使用

\rotatednodes[width=2cm, maxrotation=90]{$x$, $y$, $z$, $a$, $b$, $c$}

这使

随机定位和旋转的方程式

或者类似的东西。

可选参数是widthheight和 ,maxrotation它们的作用或多或少都与它们的名称一致。摆弄参数的键只是为了好玩:关键部分是用来\pgfmathrandominteger随机化节点的位置和旋转,我猜是用来\foreach循环遍历各种方程式。

这个简单的实现存在几个问题,特别是完全没有尝试检查节点重叠,并且只保证节点的中心落在widthxheight矩形内,但希望这将帮助您找到适合您的特定情况的解决方案。

相关内容