asymptote: Description
1 Description
*************
'Asymptote' is a powerful descriptive vector graphics language that
provides a mathematical coordinate-based framework for technical
drawing. Labels and equations are typeset with 'LaTeX', for overall
document consistency, yielding the same high-quality level of
typesetting that 'LaTeX' provides for scientific text. By default it
produces 'PostScript' output, but it can also generate any format that
the 'ImageMagick' package can produce.
A major advantage of 'Asymptote' over other graphics packages is that
it is a high-level programming language, as opposed to just a graphics
program: it can therefore exploit the best features of the script
(command-driven) and graphical-user-interface (GUI) methods for
producing figures. The rudimentary GUI 'xasy' included with the package
allows one to move script-generated objects around. To make 'Asymptote'
accessible to the average user, this GUI is currently being developed
into a full-fledged interface that can generate objects directly.
However, the script portion of the language is now ready for general use
by users who are willing to learn a few simple 'Asymptote' graphics
commands (Drawing commands).
'Asymptote' is mathematically oriented (e.g. one can use complex
multiplication to rotate a vector) and uses 'LaTeX' to do the
typesetting of labels. This is an important feature for scientific
applications. It was inspired by an earlier drawing program (with a
weaker syntax and capabilities) called 'MetaPost'.
The 'Asymptote' vector graphics language provides:
* a standard for typesetting mathematical figures, just as
TeX/'LaTeX' is the de-facto standard for typesetting equations.
* 'LaTeX' typesetting of labels, for overall document consistency;
* the ability to generate and embed 3D vector PRC graphics within PDF
files;
* a natural coordinate-based framework for technical drawing,
inspired by 'MetaPost', with a much cleaner, powerful C++-like
programming syntax;
* compilation of figures into virtual machine code for speed, without
sacrificing portability;
* the power of a script-based language coupled to the convenience of
a GUI;
* customization using its own C++-like graphics programming language;
* sensible defaults for graphical features, with the ability to
override;
* a high-level mathematically oriented interface to the 'PostScript'
language for vector graphics, including affine transforms and
complex variables;
* functions that can create new (anonymous) functions;
* deferred drawing that uses the simplex method to solve overall size
constraint issues between fixed-sized objects (labels and
arrowheads) and objects that should scale with figure size;
Many of the features of 'Asymptote' are written in the 'Asymptote'
language itself. While the stock version of 'Asymptote' is designed for
mathematics typesetting needs, one can write 'Asymptote' modules that
tailor it to specific applications. A scientific graphing module has
already been written (graph). Examples of 'Asymptote' code and
output, including animations, are available at
<http://asymptote.sourceforge.net/gallery/>
Clicking on an example file name in this manual, like 'Pythagoras', will
display the PDF output, whereas clicking on its '.asy' extension will
show the corresponding 'Asymptote' code in a separate window.
Links to many external resources, including an excellent user-written
'Asymptote' tutorial can be found at
<http://asymptote.sourceforge.net/links.html>
A quick reference card for 'Asymptote' is available at
<http://asymptote.sourceforge.net/asyRefCard.pdf>