在 TikZ 中创建随机图案

在 TikZ 中创建随机图案

我有兴趣在 TikZ 中做两件(不是完全)独立的事情,如果我应该为其中一部分提出另一个问题,请告诉我。

我感兴趣的是:

  1. 创建一个随机填充形状的数组。
  2. 创建一个随机形状。

也许将两者结合起来,但这将是下一步。我想要的是定义形状限制(如 10pt、20pt 等)而不是确定它的路径。

编辑:

这是我目前得到的结果(还不能回答我自己的问题),例如:

\begin{tikzpicture}
\def\x{rnd*4}
\foreach \i in {4,8,...,16} {
\edef\x{\x*rnd+\i}          
\draw [fill=black,
        decoration={random steps,segment length=.5cm,amplitude=.5cm},
        decorate,
        rounded corners=.3cm]
     (\x,\x) -- (\x+3,\x) -- (\x+3,\x+3) -- (\x,\x+3) -- (\x,\x);
   }
\end{tikzpicture}

将导致

输出

正如您所见,它并不是真正随机的,而是“上升的”。

因此,缩小范围:

我希望图案位于随机(或看似随机)的位置,而不会互相交叉。

提前致谢。

答案1

由于对结果的平滑度没有任何限制,我使用五边形进行说明,其中我定义了一个宏(称为\irregularshape)来绘制五边形,其顶点是随机确定的。

 \documentclass[]{standalone}
 \usepackage{tikz}

 \begin{document}
 \newcommand\irregularshape[2]{
 \begin{tikzpicture}
 \tikzstyle{every node}=[coordinate]
 \foreach \t/\x/\y in {1/18/1, 2/90/1.2, 3/162/1.4, 4/234/1.2, 5/306/1}
 {\pgfmathsetmacro\lenx{rnd*#1}   % seed
 \pgfmathsetmacro\leny{rnd*#2}    % seed
 \node(\t) at (\x+\lenx:\y+\leny) {};}                 
 \foreach \from/\to in {1/2, 2/3, 3/4, 4/5, 5/1}     
 {\draw [fill=black,rounded corners=1mm] (\from) -- (\to);}              
 \end{tikzpicture}
 }

 %Parameters (#1,#2) are changeable, yielding vertices

 \begin{tabular}{cc}
 \irregularshape{0.8}{1}&\irregularshape{1}{.2}\\
 \irregularshape{1.4}{.3}&\irregularshape{.3}{2} \\
 \irregularshape{.3}{.4}&\irregularshape{2}{.3} \\
 \end{tabular}
 \end{document}

并附有图像。 在此处输入图片描述

相关内容