1

I looked up how to draw a random path in tikz here. I came up with the following:

\begin{tikzpicture}
  \pgfmathsetseed{2}

  \node[fill,circle,inner sep=0.5] (start) at (0,0) {};

  \draw (start.center)
    \foreach \i in {1,...,5} {
      -- ++(-rnd,rnd)
  }
\end{tikzpicture}

However, I would like to have arrow tips for every segment of the resulting path. Adding [->] to the draw operation only adds a tip at the final segment. Any ideas?

2 Answers 2

3

Like this?

enter image description here

\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}
  \pgfmathsetseed{2}

  \node[fill,circle,inner sep=0.5] (start) at (0,0) {};

    \foreach \i in {1,...,5} {
        \node (end) at ($(start)+(-rnd,rnd)$) {};
        \draw[->] (start.center) -- (end.center);
        \node (start) at (end) {};
    }
\end{tikzpicture}
\end{document}
2
  • I did not know you could redefine nodes within tikz. Awesome :)
    – hfhc2
    Jan 5, 2016 at 14:55
  • This is exactly what I need. However I want to limit the random path to certain range. For example the x-axis random range should be [0-5] and y-axis [3-15]. How can I achieve that?
    – gfdsal
    Oct 18, 2020 at 12:23
4

Simply push the \draw[->] command inside the loop and make the current end point be the next start point by adding coordinate(i) at the end of each \draw[->] path. The initial (i) is of course taken as (0,0).

\documentclass[tikz]{standalone}
\begin{document}

\begin{tikzpicture}
  \pgfmathsetseed{2}

  \node[fill,circle,inner sep=0.5] (start) at (0,0) {} coordinate (i);

  \foreach \i in {1,...,5} { 
    \draw[->] (i)  
      -- ++(-rnd,rnd) coordinate(i); 
  }
\end{tikzpicture}

\end{document}

enter image description here

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .