blob: 7c9eb48eb16f01b523dd7fd8a7a41698a6272865 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
\newdimen\X
\newdimen\Y
\newdimen\Coor
% #1 is number of steps
\newcommand{\RandomWalk}[1]{%
\setrandim\X{0pt}{1pt}
\setrandim\Y{0pt}{1pt}
\psdots[dotstyle=*,dotsize=6pt](\pointless\X,\pointless\Y)
\pscustom{%
\moveto(\pointless\X,\pointless\Y)
\multido{\i=1+1}{#1}{%
\MoveCoordinate{\X}
\MoveCoordinate{\Y}
\lineto(\pointless\X,\pointless\Y)}}}
% Computation of new horizontal or vertical position of point
\newcommand{\MoveCoordinate}[1]{%
\setrandim\Coor{-0.03pt}{0.03pt}
\advance #1 by \Coor
\ifdim#1>1pt #1=1pt \fi
\ifdim#1<0pt #1=0pt \fi}
\newcommand{\randomdemo}[2]{{%
\psframe[linewidth=0.6mm](1,1)
\rput(#1,#2){\RandomWalk{300}}
\psset{linecolor=red}
\rput(#1,#2){\RandomWalk{200}}
\psset{linecolor=green}
\rput(#1,#2){\RandomWalk{100}}}}
\psset{unit=5,dimen=middle}
\framebox{%
\begin{pspicture}(1,3)
\randomdemo{0}{0}
\randomdemo{0}{1}
\randomdemo{0}{2}
\end{pspicture}}
|