我有一个由以下代码生成的节点网格:
\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
您可以使用rnd
或rand
pgf 函数。rnd
生成一个介于 0 和 1 之间且服从均匀分布的伪随机数,并rand
在 -1 和 1 之间执行相同操作。
只需将node
声明行更改为以下内容:
\node [small-node] (n-\i\j) at (\i + 0.5*rand,\j + 0.5*rand) {};