diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-turtle.tex')
-rw-r--r-- | Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-turtle.tex | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-turtle.tex b/Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-turtle.tex new file mode 100644 index 00000000000..ffb35b231d4 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-turtle.tex @@ -0,0 +1,118 @@ +% Copyright 2008 by Mark Wibrow +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Free Documentation License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + +\section{Turtle Graphics Library} +\label{section-library-tutrle} + + +\begin{pgflibrary}{turtle} + This little library defines some keys to create simple turtle + graphics in the tradition of the Logo programming language. These + commands are mostly for fun, but they can also be used for more + ``serious'' business. +\begin{codeexample}[] +\tikz[turtle/distance=2mm] + \draw [turtle={home,forward,right,forward,left,forward,left,forward}]; +\end{codeexample} +\end{pgflibrary} + +Even though the |turtle| keys looks like an option, it uses the +|insert path| option internally to produce a path. + +The basic drawing model behind the turtle graphics is very simple: +There is a (virtual) \emph{turtle} that crawls around the page, +thereby extending the path. The turtle always heads in a certain +direction. When you move the turtle forward you extend the path in +that direction; turning the turtle just changes the direction, it does +not cause anything to be drawn. + +The turtle always moves relative to the last current point of the +path and you can mix normal path commands with turtle +commands. However, the direction of the turtle is managed +independently of other path commands. + +\begin{key}{/tikz/turtle=\meta{keys}} + This key executes the \meta{keys} with the current key path set to + |/tikz/turtle|. +\begin{codeexample}[] +\tikz[turtle/distance=2mm] + \draw [turtle={home,fd,rt,fd,lt,fd,lt,fd}]; +\end{codeexample} +\end{key} + +\begin{key}{/tikz/turtle/home} + Places the turtle at the origin and lets it head upward. +\end{key} + +\begin{key}{/tikz/turtle/forward=\meta{distance} (default \normalfont see text)} + Makes the turtle move forward by the given \meta{distance}. If no + \meta{distance} is specified, the current value of the following key + is used: + \begin{key}{/tikz/turtle/distance=\meta{distance} (initially 1cm)} + The default distance by which the turtle advances. + \end{key} + ``Moving forward the turtle'' actually means that, relative to the + current last point on the path, a point at the given \meta{distance} + in the direction the turtle is currently heading is computed. Then, + the operation |to[turtle/how]| is used to extend the path to this + point. + \begin{stylekey}{/tikz/turtle/how (initially \normalfont empty)} + This style can setup the |to path| used by turtles. By setting + this style you can change the to-path: +\begin{codeexample}[] +\tikz \draw [turtle={how/.style={bend left},home,forward,right,forward}]; +\end{codeexample} + \end{stylekey} +\end{key} + +\begin{key}{/tikz/turtle/fd} + An abbreviation for the |forward| key. +\end{key} + +\begin{key}{/tikz/turtle/back=\meta{distance} (default \normalfont see text)} + This has the same effect as a |turtle/forward| for the negated + \meta{distance} value. +\end{key} + +\begin{key}{/tikz/turtle/bk} + An abbreviation for the |back| key. +\end{key} + +\begin{key}{/tikz/turtle/left=\meta{angle} (default 90)} + Turns the turtle left by the given angle. +\end{key} + +\begin{key}{/tikz/turtle/lt} + An abbreviation for the |left| key. +\end{key} + +\begin{key}{/tikz/turtle/right=\meta{angle} (default 90)} + Turns the turtle right by the given angle. +\end{key} + +\begin{key}{/tikz/turtle/rt} + An abbreviation for the |right| key. +\end{key} + +Turtle graphics are especially nice in conjunction with the |\foreach| +statement: + +\begin{codeexample}[] +\tikz \filldraw [thick,blue,fill=blue!20] + [turtle=home] + \foreach \i in {1,...,5} + { + [turtle={forward,right=144}] + }; +\end{codeexample} + +\endinput + + + |