我有兴趣在 TikZ 中做两件(不是完全)独立的事情,如果我应该为其中一部分提出另一个问题,请告诉我。
我感兴趣的是:
- 创建一个随机填充形状的数组。
- 创建一个随机形状。
也许将两者结合起来,但这将是下一步。我想要的是定义形状限制(如 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}
并附有图像。