答案1
这是直接取自 pgf 手册的一个示例:
\pgfmathsetseed{1}
\foreach \col in {black,red,green,blue}
{
\begin{tikzpicture}[x=10pt,y=10pt,ultra thick,baseline,line cap=round]
\coordinate (current point) at (0,0);
\coordinate (old velocity) at (0,0);
\coordinate (new velocity) at (rand,rand);
\foreach \i in {0,1,...,100}
{
\draw[\col!\i] (current point)
.. controls ++([scale=-1]old velocity) and
++(new velocity) .. ++(rand,rand)
coordinate (current point);
\coordinate (old velocity) at (new velocity);
\coordinate (new velocity) at (rand,rand);
}
\end{tikzpicture}
}
它位于第六部分:数学和面向对象引擎的开头。如果你想在 tikz 中进行随机绘图,那么关于数学引擎的整个部分就是你需要阅读的内容。
答案2
几周前,我参加了一门关于聚合物的课程,所以我快速整理了一下绘制随机游走的包。对于看起来像您描述的路径,以下参数应该没问题:
\documentclass{article}
\usepackage{randomwalk}
\begin{document}
\framebox{\RandomWalk {number = 300, length = 2pt,
angles = {0,10,20,50,-10,-20,-50}, degree, angles-relative}}
\end{document}
如果您需要附加功能,我可以尝试添加它们。
答案3
您可以使用该random
函数生成 0 到 1 之间的伪随机数,并使用它来定义线段的方向和距离(或绘图的任何其他参数)。可以使用设置种子。您可以使用命令中的样式\pgfmathsetseed
实现与您链接到的绘图非常类似的效果:[round corners]
\draw
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\pgfmathsetseed{2}
\begin{tikzpicture}
\draw [rounded corners] (0,0)
\foreach \i in {1,...,300} {
-- ++(rnd*360:rnd)
};
\end{tikzpicture}
\end{document}
不过,我不知道“看起来自然”的绘画。我认为这对任何程序化绘图程序来说都是一项非常困难的任务,因为你需要设置相当多的约束来阻止图片完全随机。