在 TikZ 中绘制随机路径

在 TikZ 中绘制随机路径

我正在寻找一种用 TikZ 绘制看起来像随机路径的东西的方法。

这是一个启发:

例子

是否可以让 TikZ 生成类似于随机路径的东西,而不是手动选择要连接在一起的点?

谢谢!

PS 这个问题属于一个更普遍的问题(不一定需要回答):是否有一种(元)方法可以使用 TikZ 绘制图表,就像课堂上黑板上显示的图表一样。我的意思是 TikZ 可以生成非常专业的图表,但很难绘制“随机”曲线来表达某个概念,或者绘制“随机”图表或“随机”示例来解释某个概念。

答案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}

随机平滑游动

不过,我不知道“看起来自然”的绘画。我认为这对任何程序化绘图程序来说都是一项非常困难的任务,因为你需要设置相当多的约束来阻止图片完全随机。

相关内容