Введение

Описательный векторный графический язык

Asymptote — это описательный векторный графический язык, разработанный Энди Хаммерлиндлом, Джоном К. Боуменом (Университет Альберты) и Томом Принсом, который предоставляет естественную систему координат для технического рисования. Asymptote работает на всех основных платформах (Unix, Mac OS, Microsoft Windows). Это свободное программное обеспечение, распространяемое по лицензии GNU Lesser General Public License (LGPL).

Синтаксис и примечательные особенности

Asymptote выполняет набор этикеток и уравнений с использованием LaTeX, генерируя высококачественный вывод в форматах PostScript, PDF, SVG или 3D PRC. Он вдохновлен MetaPost, но имеет синтаксис, близкий к C. Asymptote предоставляет язык для создания математических иллюстраций, подобно тому, как TeX/LaTeX предоставляет язык для набора уравнений. Он ориентирован на математические вычисления (например, вращение векторов посредством комплексного умножения) и использует симплекс-метод и отложенное рисование для решения задач, связанных с общими ограничениями размеров между объектами фиксированного размера (например, этикетками и наконечниками стрелок) и объектами, которые должны масштабироваться вместе с размером иллюстрации. Asymptote полностью обобщает алгоритмы построения путей MetaPost для трехмерного пространства и компилирует команды в код виртуальной машины для повышения скорости без ущерба для переносимости. Высокоуровневые графические команды реализованы непосредственно на языке Asymptote, что позволяет легко адаптировать их к конкретным задачам. Кроме того, Asymptote, по-видимому, является первым программным пакетом, переносящим TeX в трехмерное пространство. Это позволяет использовать Asymptote как 3D-векторный формат файлов. Asymptote также отличается наличием графического интерфейса, написанного на Python (с использованием набора виджетов Tk) – xasy.py, который позволяет даже неопытным пользователям быстро создавать объекты и сохранять их в виде исходного кода Asymptote для последующего изучения или ручного редактирования. Изначально синтаксис программы был описан с использованием грамматики, совместимой с Yacc.