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 (SeeDrawing 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 (Seegraph).  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>