summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/doc/asymptote.texi
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/doc/asymptote.texi')
-rw-r--r--Build/source/utils/asymptote/doc/asymptote.texi429
1 files changed, 212 insertions, 217 deletions
diff --git a/Build/source/utils/asymptote/doc/asymptote.texi b/Build/source/utils/asymptote/doc/asymptote.texi
index 39467931e05..6645b03a2cd 100644
--- a/Build/source/utils/asymptote/doc/asymptote.texi
+++ b/Build/source/utils/asymptote/doc/asymptote.texi
@@ -51,6 +51,7 @@ file LICENSE in the top-level source directory).
* Installation:: Downloading and installing
* Tutorial:: Getting started
* Drawing commands:: Four primitive graphics commands
+* Bezier curves:: Path connectors and direction specifiers
* Programming:: The @code{Asymptote} vector graphics language
* LaTeX usage:: Embedding @code{Asymptote} commands within @code{LaTeX}
* Base modules:: Base modules shipped with @code{Asymptote}
@@ -165,8 +166,8 @@ Base modules
Graphical User Interface
-* GUI Installation:: Installing @code{xasy}
-* GUI Usage::
+* GUI installation:: Installing @code{xasy}
+* GUI usage::
@end detailmenu
@end menu
@@ -282,7 +283,7 @@ We recommend subscribing to new release announcements at
@noindent
Users may also wish to monitor the @code{Asymptote} forum:
@quotation
-@url{http://sourceforge.net/forum/monitor.php?forum_id=409349}
+@url{http://sourceforge.net/projects/asymptote/forums/forum/409349}
@end quotation
@noindent
@@ -483,6 +484,7 @@ configuration variables @code{paperwidth} and @code{paperheight}.
@cindex @code{texpath}
@cindex @code{texcommand}
@cindex @code{dvips}
+@cindex @code{dvisvg}
@cindex @code{convert}
@cindex @code{display}
@cindex @code{animate}
@@ -492,6 +494,7 @@ The following configuration variables normally do not require adjustment:
texpath
texcommand
dvips
+dvisvg
convert
display
animate
@@ -766,61 +769,61 @@ make uninstall
@node Tutorial
@chapter Tutorial
@cindex tutorial
-@emph{An excellent user-written @code{Asymptote} tutorial is also available
-from}
-
-@url{http://www.artofproblemsolving.com/Wiki/index.php/Asymptote:_Basics}
+@cindex batch mode
+To draw a line from coordinate (0,0) to coordinate (100,100),
+create a text file @code{test.asy} containing
+@verbatiminclude diagonal.asy
@noindent
-To draw a line from coordinate (0,0) to coordinate (100,100) using
-@code{Asymptote}'s interactive mode, type at the command prompt:
+Then execute the command
@verbatim
-asy
-draw((0,0)--(100,100));
+asy -V test
@end verbatim
+@noindent
+Alternatively, @code{MSDOS} users can drag and drop @code{test.asy} onto the
+Desktop @code{asy} icon (or make @code{Asymptote} the default
+application the extension @code{asy}).
+
+@noindent
+@cindex @code{-V}
+This method, known as @emph{batch mode}, outputs a @code{PostScript}
+file @code{test.eps}. The @code{-V} option opens up a @code{PostScript}
+viewer window so you can immediately view the result:
@sp 1
@center @image{diagonal}
-
@cindex @code{bp}
@cindex @code{pair}
-The units here are @code{PostScript} "big points"
-(1 @code{bp} = 1/72 @code{inch}); @code{--} means join with a linear segment.
-In @code{Asymptote} coordinates like @code{(0,0)} and
-@code{(1000,100)} are called @emph{pairs}.
+@noindent
+The @code{--} connector joins the two points @code{(0,0)} and
+@code{(100,100)} with a linear segment.
+Another method is @emph{interactive mode}, where @code{Asymptote} reads
+individual commands as they are entered by the user. To try this out, enter
+@code{Asymptote}'s interactive mode by clicking on the
+@code{Asymptote} icon or typing the command @code{asy}.
+Then type
+@verbatim
+draw((0,0)--(100,100));
+@end verbatim
+@noindent
+followed by @code{Enter}, to obtain the above image.
@cindex tab completion
@cindex arrow keys
-At this point you can type in further draw commands, which will be added
-to the displayed figure, or type @code{quit} to exit interactive mode.
-You can use the arrow keys in interactive mode to edit previous lines
-(assuming that you have support for the @acronym{GNU} @code{readline} library
-enabled). The tab key will automatically complete unambiguous words;
-otherwise, hitting tab again will show the possible choices. Further
-commands specific to interactive mode are described in @ref{Interactive mode}.
-
-@cindex batch mode
-In batch mode, @code{Asymptote} reads commands directly from a
-file. To try this out, type
-@verbatiminclude diagonal.asy
-
+@cindex erase
+@cindex quit
@noindent
-into a file, say test.asy. Then execute this file with the
-@code{MSDOS} or @code{UNIX} command
+At this point you can type further @code{draw} commands, which will be added
+to the displayed figure, @code{erase} to clear the canvas,
@verbatim
-asy -V test
+input test;
@end verbatim
@noindent
-@code{MSDOS} users can drag and drop the file onto the
-Desktop @code{asy} icon or make @code{Asymptote} the
-default application for files with the extension @code{asy}.
-
-@noindent
-@cindex @code{-V}
-The @code{-V} option opens up a @code{PostScript}
-viewer window so you can immediately view the encapsulated
-@code{PostScript} output. By default the output will be written to the
-file @code{test.eps}; the prefix of the output file may be changed with
-the @code{-o} command-line option.
+to execute all of the commands contained in the file @code{test.asy},
+or @code{quit} to exit interactive mode.
+You can use the arrow keys in interactive mode to edit previous lines.
+The tab key will automatically complete unambiguous words;
+otherwise, hitting tab again will show the possible choices. Further
+commands specific to interactive mode are described in @ref{Interactive mode}.
@cindex @code{cycle}
One can draw a line with more than two points and create a cyclic path
@@ -829,9 +832,13 @@ like this square:
@sp 1
@center @image{square}
-It is often inconvenient to work directly with @code{PostScript} coordinates.
-The next example draws a unit square scaled to width 101 bp and height
-101 bp. The output is identical to that of the previous example.
+In @code{Asymptote} coordinates like (0,0) and (100,100) are called
+@emph{pairs}. The pairs in the previous examples are expressed in
+@code{PostScript} "big points" (1 @code{bp} = 1/72 @code{inch}).
+However, it is often inconvenient to work directly in
+@code{PostScript} coordinates. The next example draws a unit square
+scaled to width 101 @code{bp} and height
+101 @code{bp}. The output is identical to that of the previous example.
@verbatim
size(101,101);
draw((0,0)--(1,0)--(1,1)--(0,1)--cycle);
@@ -840,16 +847,16 @@ draw((0,0)--(1,0)--(1,1)--(0,1)--cycle);
For convenience, the path @code{(0,0)--(1,0)--(1,1)--(0,1)--cycle}
may be replaced with the predefined variable
@code{unitsquare}, or equivalently, @code{box((0,0),(1,1))}.
-
@cindex @code{inches}
@cindex @code{cm}
@cindex @code{mm}
@cindex @code{pt}
One can also specify the size in @code{pt} (1 @code{pt} = 1/72.27 @code{inch}),
-@code{cm}, @code{mm}, or @code{inches}.
+@code{cm}, @code{mm}, or @code{inches}.
+Two nonzero size arguments (or a single size argument) restrict the
+size in both directions, preserving the aspect ratio.
If 0 is given as a size argument, no restriction is made in that direction;
-the overall scaling will be determined by the other direction
-(@pxref{size}):
+the overall scaling will be determined by the other direction (@pxref{size}):
@verbatiminclude bigsquare.asy
@sp 1
@center @image{bigsquare}
@@ -861,12 +868,7 @@ To make the user coordinates represent multiples of exactly @code{1cm}:
unitsize(1cm);
draw(unitsquare);
@end verbatim
-
-One can also specify different @math{x} and @math{y} unit sizes:
-@verbatim
-unitsize(1cm,2cm);
-draw(unitsquare);
-@end verbatim
+@noindent
Adding labels is easy in @code{Asymptote}; one specifies the
label as a double-quoted @code{LaTeX} string, a
@@ -884,11 +886,12 @@ coordinate, and an optional alignment direction:
@code{N=(0,1)}, @code{NE=unit(N+E)}, and @code{ENE=unit(E+NE)}, etc.,
which along with the directions @code{up}, @code{down}, @code{right},
and @code{left} are defined as pairs in the @code{Asymptote} base
-module @code{plain}. A user who has a local variable named @code{E}
+module @code{plain} (a user who has a local variable named @code{E}
may access the compass direction @code{E} by prefixing it with the name
-of the module where it is defined: @code{plain.E}.
+of the module where it is defined: @code{plain.E}).
-This example draws a path that approximates a quarter circle:
+This example draws a path that approximates a quarter circle,
+terminated with an arrowhead:
@verbatiminclude quartercircle.asy
@sp 1
@center @image{quartercircle}
@@ -899,7 +902,7 @@ interconnected with
@cindex @code{--}
@cindex @code{..}
@code{--}, which denotes a straight line segment, or @code{..}, which
-denotes a cubic spline.
+denotes a cubic spline (@pxref{Bezier curves}).
@cindex @code{unitcircle}
@anchor{unitcircle}
@cindex @code{unitcircle}
@@ -910,116 +913,11 @@ connects smoothly back to the initial node, as in this approximation
path unitcircle=E..N..W..S..cycle;
@end verbatim
-@cindex Bezier
-@anchor{Bezier}
-@cindex direction specifier
-Each interior node of a cubic spline may be given a
-direction prefix or suffix @code{@{dir@}}: the direction of the pair
-@code{dir} specifies the direction of the incoming or outgoing tangent,
-respectively, to the curve at that node. Exterior nodes may be
-given direction specifiers only on their interior side.
-
-A cubic spline between the node @math{z_0}, with postcontrol point
-@math{c_0}, and the node @math{z_1}, with precontrol point @math{c_1},
-is computed as the Bezier curve
-@sp 1
-@center @image{bezier,,,(1-t)^3*z_0+3t(1-t)^2*c_0+3t^2(1-t)*c_1+t^3*z_1 for 0 <=t <= 1.}
-
-As illustrated in the diagram below, the third-order midpoint (@math{m_5})
-constructed from two endpoints @math{z_0} and @math{z_1} and two control points
-@math{c_0} and @math{c_1}, is the point corresponding to @math{t=1/2} on
-the Bezier curve formed by the quadruple (@math{z_0}, @math{c_0},
-@math{c_1}, @math{z_1}). This allows one to recursively construct the
-desired curve, by using the newly extracted third-order midpoint as an
-endpoint and the respective second- and first-order midpoints as control
-points:
-@sp 1
-@center @image{bezier2}
-
-Here @math{m_0}, @math{m_1} and @math{m_2} are the first-order
-midpoints, @math{m_3} and @math{m_4} are the second-order midpoints, and
-@math{m_5} is the third-order midpoint.
-The curve is then constructed by recursively applying the algorithm to
-(@math{z_0}, @math{m_0}, @math{m_3}, @math{m_5}) and
-(@math{m_5}, @math{m_4}, @math{m_2}, @math{z_1}).
-
-In fact, an analogous property holds for points located at any
-fraction @math{t} in @math{[0,1]} of each segment, not just for
-midpoints (@math{t=1/2}).
-
-The Bezier curve constructed in this manner has the following properties:
-@itemize @bullet
-
-@item It is entirely contained in the convex hull of the given four points.
-
-@item It starts heading from the first endpoint to the first control point
-and finishes heading from the second control point to the second endpoint.
-
-@end itemize
-
-@cindex @code{controls}
-The user can specify explicit control points between two nodes like this:
-@verbatim
-draw((0,0)..controls (0,100) and (100,100)..(100,0));
-@end verbatim
-
-However, it is usually more convenient to just use the
-@code{..} operator, which tells @code{Asymptote} to choose its own
-control points using the algorithms described in Donald Knuth's
-monograph, The MetaFontbook, Chapter 14.
-The user can still customize the guide (or path) by specifying
-direction, tension, and curl values.
-
-The higher the tension, the straighter the curve is, and the more
-it approximates a straight line.
-@cindex @code{tension}
-@cindex @code{and}
-@cindex @code{atleast}
-One can change the spline tension from its default value of 1 to any
-real value greater than or equal to 0.75 (cf. John D. Hobby, Discrete and
-Computational Geometry 1, 1986):
-@verbatim
-draw((100,0)..tension 2 ..(100,100)..(0,100));
-draw((100,0)..tension 2 and 1 ..(100,100)..(0,100));
-draw((100,0)..tension atleast 1 ..(100,100)..(0,100));
-@end verbatim
-
-@cindex @code{curl}
-The curl parameter specifies the curvature at the endpoints of a path
-(0 means straight; the default value of 1 means approximately circular):
-@verbatim
-draw((100,0){curl 0}..(100,100)..{curl 0}(0,100));
-@end verbatim
-
-@cindex @code{MetaPost ...@ }
-@cindex @code{::}
-The @code{MetaPost ...} path connector, which requests, when possible, an
-inflection-free curve confined to a triangle defined by the
-endpoints and directions, is implemented in @code{Asymptote} as the
-convenient abbreviation @code{::} for @code{..tension atleast 1 ..}
-(the ellipsis @code{...} is used in @code{Asymptote} to indicate a
-variable number of arguments; @pxref{Rest arguments}). For example,
-compare
-@verbatiminclude dots.asy
-@sp 1
-@center @image{dots}
-@noindent
-with
-@verbatiminclude colons.asy
-@sp 1
-@center @image{colons}
-
-@cindex @code{---}
-@cindex @code{&}
-The @code{---} connector is an abbreviation for @code{..tension atleast
-infinity..} and the @code{&} connector concatenates two paths, after
-first stripping off the last node of the first path (which normally
-should coincide with the first node of the second path).
-
@cindex @code{PostScript} subpath
@cindex @code{^^}
@cindex @code{path[]}
@cindex superpath
+@noindent
An @code{Asymptote} path, being connected, is equivalent to a
@code{Postscript subpath}. The @code{^^} binary operator, which
requests that the pen be moved (without drawing or affecting
@@ -1032,6 +930,7 @@ initial point of the right-hand path, may be used to group several
@center @image{superpath}
@cindex evenodd
+@noindent
The @code{PostScript} even-odd fill rule here specifies that only the
region bounded between the two unit circles is filled (@pxref{fillrule}).
In this example, the same effect can be achieved by using the default
@@ -1043,17 +942,21 @@ filldraw(unitcircle^^reverse(g),yellow,black);
@cindex @code{unitbox}
The @code{^^} operator is used by the @code{box(triple, triple)} function in
-@code{three.asy} to construct the edges of a cube @code{unitbox}
-without retracing steps:
+the module @code{three.asy} to construct the edges of a
+cube @code{unitbox} without retracing steps (@pxref{three}):
@verbatiminclude cube.asy
@sp 1
@center @image{cube}
See section @ref{graph} (or the online @code{Asymptote} gallery and
external links posted at @url{http://asymptote.sourceforge.net}) for
-further examples, including two and three-dimensional scientific
+further examples, including two and interactive three-dimensional scientific
graphs. Additional examples have been posted by Philippe Ivaldi at
-@url{http://piprim.tuxfamily.org/asymptote/}.
+@url{http://www.piprime.fr/asymptote/}.
+A user-written @code{Asymptote} tutorial is available at
+@verbatim
+http://www.artofproblemsolving.com/Wiki/index.php/Asymptote:_Basics
+@end verbatim
@node Drawing commands
@chapter Drawing commands
@@ -1637,6 +1540,114 @@ produce a CD label:
@sp 1
@center @image{CDlabel}
@verbatiminclude CDlabel.asy
+
+@node Bezier curves
+@chapter Bezier curves
+@cindex Bezier curves
+@cindex direction specifier
+Each interior node of a cubic spline may be given a
+direction prefix or suffix @code{@{dir@}}: the direction of the pair
+@code{dir} specifies the direction of the incoming or outgoing tangent,
+respectively, to the curve at that node. Exterior nodes may be
+given direction specifiers only on their interior side.
+
+A cubic spline between the node @math{z_0}, with postcontrol point
+@math{c_0}, and the node @math{z_1}, with precontrol point @math{c_1},
+is computed as the Bezier curve
+@sp 1
+@center @image{bezier,,,(1-t)^3*z_0+3t(1-t)^2*c_0+3t^2(1-t)*c_1+t^3*z_1 for 0 <=t <= 1.}
+
+As illustrated in the diagram below, the third-order midpoint (@math{m_5})
+constructed from two endpoints @math{z_0} and @math{z_1} and two control points
+@math{c_0} and @math{c_1}, is the point corresponding to @math{t=1/2} on
+the Bezier curve formed by the quadruple (@math{z_0}, @math{c_0},
+@math{c_1}, @math{z_1}). This allows one to recursively construct the
+desired curve, by using the newly extracted third-order midpoint as an
+endpoint and the respective second- and first-order midpoints as control
+points:
+@sp 1
+@center @image{bezier2}
+
+Here @math{m_0}, @math{m_1} and @math{m_2} are the first-order
+midpoints, @math{m_3} and @math{m_4} are the second-order midpoints, and
+@math{m_5} is the third-order midpoint.
+The curve is then constructed by recursively applying the algorithm to
+(@math{z_0}, @math{m_0}, @math{m_3}, @math{m_5}) and
+(@math{m_5}, @math{m_4}, @math{m_2}, @math{z_1}).
+
+In fact, an analogous property holds for points located at any
+fraction @math{t} in @math{[0,1]} of each segment, not just for
+midpoints (@math{t=1/2}).
+
+The Bezier curve constructed in this manner has the following properties:
+@itemize @bullet
+
+@item It is entirely contained in the convex hull of the given four points.
+
+@item It starts heading from the first endpoint to the first control point
+and finishes heading from the second control point to the second endpoint.
+
+@end itemize
+
+@cindex @code{controls}
+The user can specify explicit control points between two nodes like this:
+@verbatim
+draw((0,0)..controls (0,100) and (100,100)..(100,0));
+@end verbatim
+
+However, it is usually more convenient to just use the
+@code{..} operator, which tells @code{Asymptote} to choose its own
+control points using the algorithms described in Donald Knuth's
+monograph, The MetaFontbook, Chapter 14.
+The user can still customize the guide (or path) by specifying
+direction, tension, and curl values.
+
+The higher the tension, the straighter the curve is, and the more
+it approximates a straight line.
+@cindex @code{tension}
+@cindex @code{and}
+@cindex @code{atleast}
+One can change the spline tension from its default value of 1 to any
+real value greater than or equal to 0.75 (cf. John D. Hobby, Discrete and
+Computational Geometry 1, 1986):
+@verbatim
+draw((100,0)..tension 2 ..(100,100)..(0,100));
+draw((100,0)..tension 2 and 1 ..(100,100)..(0,100));
+draw((100,0)..tension atleast 1 ..(100,100)..(0,100));
+@end verbatim
+
+@cindex @code{curl}
+The curl parameter specifies the curvature at the endpoints of a path
+(0 means straight; the default value of 1 means approximately circular):
+@verbatim
+draw((100,0){curl 0}..(100,100)..{curl 0}(0,100));
+@end verbatim
+
+@cindex @code{MetaPost ...@ }
+@cindex @code{::}
+The @code{MetaPost ...} path connector, which requests, when possible, an
+inflection-free curve confined to a triangle defined by the
+endpoints and directions, is implemented in @code{Asymptote} as the
+convenient abbreviation @code{::} for @code{..tension atleast 1 ..}
+(the ellipsis @code{...} is used in @code{Asymptote} to indicate a
+variable number of arguments; @pxref{Rest arguments}). For example,
+compare
+@verbatiminclude dots.asy
+@sp 1
+@center @image{dots}
+@noindent
+with
+@verbatiminclude colons.asy
+@sp 1
+@center @image{colons}
+
+@cindex @code{---}
+@cindex @code{&}
+The @code{---} connector is an abbreviation for @code{..tension atleast
+infinity..} and the @code{&} connector concatenates two paths, after
+first stripping off the last node of the first path (which normally
+should coincide with the first node of the second path).
+
@node Programming
@chapter Programming
@cindex programming
@@ -2214,7 +2225,7 @@ path ellipse(pair c, real a, real b)
@end verbatim
This example illustrates the use of all five guide connectors discussed
-in @ref{Tutorial}:
+in @ref{Tutorial} and @ref{Bezier curves}:
@verbatiminclude join.asy
@sp 1
@center @image{join}
@@ -2257,7 +2268,7 @@ is returned).
@item pair point(path p, real t);
This returns the coordinates of the point between node @code{floor(t)}
and @code{floor(t)+1} corresponding to the cubic spline parameter
-@code{t-floor(t)} (@pxref{Bezier}). If @code{t} lies outside the range
+@code{t-floor(t)} (@pxref{Bezier curves}). If @code{t} lies outside the range
[0,@code{length(p)}], it is first reduced modulo @code{length(p)}
in the case where @code{p} is cyclic or else converted to the corresponding
endpoint of @code{p}.
@@ -2272,7 +2283,7 @@ two directions is returned.
@item pair dir(path p, real t, bool normalize=true);
returns the direction of the tangent to path @code{p} at the point
between node @code{floor(t)} and @code{floor(t)+1} corresponding to the
-cubic spline parameter @code{t-floor(t)} (@pxref{Bezier}).
+cubic spline parameter @code{t-floor(t)} (@pxref{Bezier curves}).
@cindex @code{accel}
@item pair accel(path p, int t, int sign=0);
@@ -3403,7 +3414,7 @@ pair min(picture pic, user=false);
pair max(picture pic, user=false);
pair size(picture pic, user=false);
@end verbatim
-calculate the @code{PostScript} bounds that picture @code{pic} would
+calculate the bounds that picture @code{pic} would
have if it were currently fit to a frame using its default size specification.
If @code{user} is @code{false} the returned value is in
@code{PostScript} coordinates, otherwise it is in user coordinates.
@@ -6061,9 +6072,9 @@ structure. Link to the documentation for the @code{geometry} module
are posted here:
@url{http://asymptote.sourceforge.net/links.html},
including an extensive set of examples,
-@url{http://piprim.tuxfamily.org/asymptote/geometry/index.html}, and an index:
+@url{http://www.piprime.fr/files/asymptote/geometry/}, and an index:
@quotation
-@url{http://piprim.tuxfamily.org/asymptote/geometry/modules/geometry.asy.index.type.html}
+@url{http://www.piprime.fr/files/asymptote/geometry/modules/geometry.asy.index.type.html}
@end quotation
@node trembling
@@ -6072,7 +6083,7 @@ including an extensive set of examples,
This module, written by Philippe Ivaldi and illustrated in the example
@code{floatingdisk.asy}, allows one to draw wavy lines, as if drawn by
hand. Further examples are posted at
-@url{http://piprim.tuxfamily.org/asymptote/trembling/index.html}
+@url{http://www.piprime.fr/files/asymptote/trembling/}
@node stats
@section @code{stats}
@@ -6573,7 +6584,7 @@ or @code{xmax} specifies that the corresponding axis limit will be
automatically determined from the picture limits.
The optional @code{arrow} argument takes the same values as in the
@code{draw} command (@pxref{arrows}). The axis is drawn before any
-existing objects in the current picture unless @code{above=true}.
+existing objects in @code{pic} unless @code{above=true}.
The axis placement is determined by one of the following @code{axis} types:
@table @code
@@ -6734,7 +6745,7 @@ or @code{ymax} specifies that the corresponding axis limit will be
automatically determined from the picture limits.
The optional @code{arrow} argument takes the same values as in the
@code{draw} command (@pxref{arrows}). The axis is drawn before any
-existing objects in the current picture unless @code{above=true}.
+existing objects in @code{pic} unless @code{above=true}.
The tick type is specified by @code{ticks} and the axis placement is
determined by one of the following @code{axis} types:
@@ -6796,7 +6807,7 @@ This convenience routine draws both @math{x} and @math{y} axes
on picture @code{pic} from @code{min} to @code{max},
with optional labels @code{xlabel} and @code{ylabel}
and any arrows specified by @code{arrow}. The axes are drawn on top of
-existing objects in the current picture only if @code{above=true}.
+existing objects in @code{pic} only if @code{above=true}.
@item
@verbatim
@@ -6814,7 +6825,7 @@ The optional integer array @code{divisor} specifies what tick divisors
to try in the attempt to produce uncrowded tick labels. A @code{true}
value for the flag @code{opposite} identifies an unlabelled secondary
axis (typically drawn opposite a primary axis). The axis is drawn before
-any existing objects in the current picture unless @code{above=true}.
+any existing objects in @code{pic} unless @code{above=true}.
The tick locator @code{ticklocate} is constructed by the routine
@verbatim
ticklocate ticklocate(real a, real b, autoscaleT S=defaultS,
@@ -7560,6 +7571,9 @@ The keyboard shortcuts are:
@item m: rendering mode (solid/mesh/patch)
@item e: export
@item c: show camera parameters
+@item p: play animation
+@item r: reverse animation
+@item : step animation
@item +: expand
@item =: expand
@item >: expand
@@ -8235,7 +8249,7 @@ as illustrated in the examples @code{vectorfield3.asy} and
This module, contributed by Philippe Ivaldi, can be used for drawing
3D grids. Here is an example (further examples can be found in
-@code{grid3.asy} and at @url{http://piprim.tuxfamily.org/asymptote/grid3/}):
+@code{grid3.asy} and at @url{http://www.piprime.fr/files/asymptote/grid3/}):
@verbatiminclude grid3xyz.asy
@sp 1
@center @image{grid3xyz}
@@ -8328,7 +8342,7 @@ shading behaviour is the default shading behavior for a surface.
An example of @code{tube} is provided in the file
@code{trefoilknot.asy}. Further examples can be found at
-@url{http://piprim.tuxfamily.org/asymptote/tube/}.
+@url{http://www.piprime.fr/files/asymptote/tube/}.
@node flowchart
@section @code{flowchart}
@@ -8604,7 +8618,7 @@ implements a number of explicit numerical integration schemes for
ordinary differential equations.
@node Options
-@chapter Options
+@chapter Command-line options
@cindex options
@cindex command-line options
Type @code{asy -h} to see the full list of command-line options
@@ -8800,6 +8814,9 @@ and must be entered immediately after the prompt:
@cindex @code{help}
@item help
view the manual;
+@item erase
+erase @code{currentpicture};
+@cindex @code{input}
@item reset
reset the @code{Asymptote} environment to its initial state, except for
changes to the settings module (@pxref{settings}), the current directory
@@ -8869,12 +8886,12 @@ preliminary Graphical User Interface (@acronym{GUI}) @code{xasy} included with
The modified figure can then be saved as a normal @code{Asymptote} file.
@menu
-* GUI Installation:: Installing @code{xasy}
-* GUI Usage::
+* GUI installation:: Installing @code{xasy}
+* GUI usage::
@end menu
-@node GUI Installation
-@section GUI Installation
+@node GUI installation
+@section GUI installation
@cindex GUI installation
As @code{xasy} is written in the interactive scripting language
@@ -8911,8 +8928,8 @@ cd Imaging-1.1.7b1
python setup.py install
@end verbatim
-@node GUI Usage
-@section GUI Usage
+@node GUI usage
+@section GUI usage
@cindex GUI usage
@cindex @code{deconstruct}
@@ -8937,33 +8954,11 @@ elements will be individually deconstructed (@pxref{add}).
@node PostScript to Asymptote
@chapter @code{PostScript} to @code{Asymptote}
@cindex @code{pstoedit}
-The excellent @code{PostScript} editor @code{pstoedit} (version 3.45 or later;
-available from @url{http://pstoedit.net}) includes an
+The excellent @code{PostScript} editor @code{pstoedit} (version 3.50 or later;
+available from @url{http://sourceforge.net/projects/pstoedit/}) includes an
@code{Asymptote} backend. Unlike virtually all other @code{pstoedit}
backends, this driver includes native clipping, even-odd fill rule,
-@code{PostScript} subpath, and full image support.
-
-For full functionality, the patch @code{pstoedit-3.45asy.patch}
-in the @code{patches} directory should be applied. On @code{UNIX} systems, as
-the root user, place
-@quotation
-@url{http://prdownloads.sourceforge.net/pstoedit/pstoedit-3.45.tar.gz}
-@end quotation
-@noindent
-in the @code{Asymptote} source directory, and type:
-
-@verbatim
-tar -zxf pstoedit-3.45.tar.gz
-cd pstoedit-3.45
-patch -p1 < ../patches/pstoedit-3.45asy.patch
-autoconf
-./configure --prefix=/usr
-make install
-@end verbatim
-
-@noindent
-Then try:
-
+@code{PostScript} subpath, and full image support. Here is an example:
@noindent
@code{asy -V @value{Datadir}/doc/asymptote/examples/venn.asy}
@noindent
@@ -8992,7 +8987,7 @@ Questions on installing and using @code{Asymptote} that are not
addressed in the @acronym{FAQ} should be sent to the
@code{Asymptote} forum:
@quotation
-@url{http://sourceforge.net/forum/forum.php?forum_id=409349}
+@url{http://sourceforge.net/projects/asymptote/forums/forum/409349}
@end quotation
@noindent
Including an example that illustrates what you are trying to do will help
@@ -9309,4 +9304,4 @@ Melenchuk, Martin Wiebusch, and Stefan Knorr.
@c LocalWords: usplinetype vsplinetype leftbutton middlebutton rightbutton
@c LocalWords: rotateY rotateZ wheelup zoomin wheeldown zoomout TeXLive
@c LocalWords: viewportshift signedint signedness psview multiplatform nowarn
-@c LocalWords: singlereal singleint writeoverloaded tubegranularity
+@c LocalWords: singlereal singleint writeoverloaded tubegranularity dvisvg