Next: Installation, Previous: Top, Up: Top [Contents][Index]

`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 (see 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
(see graph). Examples of `Asymptote`

code and output,
including animations, are available at

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

A quick reference card for `Asymptote`

is available at

Next: Installation, Previous: Top, Up: Top [Contents][Index]