我如何随机扰乱节点网格的位置?

我如何随机扰乱节点网格的位置?

我有一个由以下代码生成的节点网格:

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\tikzset{
    small-node/.style={
        shape=circle,
        fill=white,
        draw,
        minimum size=+4mm}
}
\begin{document}    
\begin{tikzpicture}
\foreach \i in {0,...,4}
    \foreach \j in {0,...,4}
        \node [small-node] (n-\i\j) at (\i,\j) {};
\foreach \i in {0,...,4}
    \foreach \j [count=\jj] in {0,...,3}
        \draw (n-\i\j) -- (n-\i\jj) (n-\j\i) -- (n-\jj\i);
\end{tikzpicture}
\end{document}

有没有一种方法,在创建每个节点时,我可以生成两个范围在 (-0.5,0.5) 内的随机数,并将这两个数添加到节点的 x 和 y 坐标中,以便它们不再是直线网格模式?

答案1

您可以使用rndrandpgf 函数。rnd生成一个介于 0 和 1 之间且服从均匀分布的伪随机数,并rand在 -1 和 1 之间执行相同操作。

只需将node声明行更改为以下内容:

\node [small-node] (n-\i\j) at (\i + 0.5*rand,\j + 0.5*rand) {};

渲染

相关内容