<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% ---------------------------------------------------------------------------
% Draws turtle graphics in pdfTeX with Lapdf. The procedures are taken
% from Abelson's introductory book for object logo on the Macintosh.
% ---------------------------------------------------------------------------
\input preamble.tex

\newcount\i
\newcount\pen
\newdimen\a
\newdimen\b
\newdimen\t
\newdimen\dir
\newdimen\ax
\newdimen\tx
\newdimen\ty
\newdimen\ux
\newdimen\uy

% ---------------------------------------------------------------------------
% This is a simple Lapdf implementation of turtle graphics. The commands
% are: Initturtle, Home, Penup, Pendown, Forward, Back, Right, Left.
% ---------------------------------------------------------------------------
\def\Home{\Moveto(0,0)}
\def\Penup{\pen=0}
\def\Pendown{\pen=1}

\def\Initturtle{\Home \col=-1 \Dset(\dir,0) \Setwidth(0.02) \Pendown}

\def\Forward(#1){\Dset(\ax,#1) \Rad(\Np\dir,\ty)
 \Sin(\Np\ty,\tx) \Dmul(\tx,\ax) \Add(\ux,\tx)
 \Cos(\Np\ty,\tx) \Dmul(\tx,\ax) \Add(\uy,\tx)
 \ifnum\pen=0 \Moveto(\Np\ux,\Np\uy) \else \Lineto(\Np\ux,\Np\uy) \fi}

\def\Back(#1){\Dset(\ax,#1) \Rad(\Np\dir,\ty)
 \Sin(\Np\ty,\tx) \Dmul(\tx,\ax) \Sub(\ux,\tx)
 \Cos(\Np\ty,\tx) \Dmul(\tx,\ax) \Add(\uy,\tx)
 \ifnum\pen=0 \Moveto(\Np\ux,\Np\uy) \else \Lineto(\Np\ux,\Np\uy) \fi}

\def\Right(#1){\Dset(\ax,#1) \Add(\dir,\ax) {\Dmod(\dir,360)}}
\def\Left(#1){\Dset(\ax,#1) \Sub(\dir,\ax) {\Dmod(\dir,360)}}

% ---------------------------------------------------------------------------
% These are our own special drawing macros.
% ---------------------------------------------------------------------------
\def\Arcleft(#1,#2){\i=0 \Dset(\t,#1) \Dmul(\t,0.017453pt)
 \Whilenum{\i&lt;#2}{\Forward(\Np\t) \Left(1) \Add(\i,1)}}

\def\Arcright(#1,#2){\i=0 \Dset(\t,#1) \Dmul(\t,0.017453pt)
 \Whilenum{\i&lt;#2}{\Forward(\Np\t) \Right(1) \Add(\i,1)}}

\def\Fullcirc(#1){{\Arcright(#1,360)} \Stroke}

\def\Square(#1){\i=0
 \Whilenum{\i&lt;4}{\Forward(#1) \Right(90) \Add(\i,1)} \Stroke \Home}

\def\Rosette(#1,#2){\i=0 \Dset(\t,360) \Div(\t,#2)
 \Whilenum{\i&lt;#2}{\Nextcol(0,23) {\Square(#1)} \Right(\Np\t) \Add(\i,1)}}

\def\Petal(#1){\Arcright(#1,60) \Right(120) \Arcright(#1,60)
 \Right(120) \Stroke \Home}

\def\Flower(#1){\i=0
 \Whilenum{\i&lt;6}{\Stepcol(0,23,4) {\Petal(#1)} \Right(60) \Add(\i,1)}}

% ---------------------------------------------------------------------------
\begin{document}
\unitlength1.25cm

\begin{center}
{\Huge\bf{Turtle Graphics with \Lapdf}}
\bigskip

\begin{lapdf}(9,9)(-4.5,-4.5)
 \Initturtle
 \Rosette(3,24)
 \Initturtle
 \Penup
 \Forward(4.243)
 \Right(90)
 \Pendown
 \Dgray
 \Fullcirc(4.243)
\end{lapdf}

\begin{lapdf}(9,9)(-4.5,-4.5)
 \Initturtle
 \Flower(5)
\end{lapdf}
\end{center}
\end{document}
</pre></body></html>