Asymptoteは、Andy Hammerlindl、John C. Bowman(アルバータ大学)、Tom Princeによって開発された記述型ベクターグラフィックス言語で、技術図面のための自然な座標ベースのフレームワークを提供します。Asymptoteは、主要なプラットフォーム( Unix、Mac OS、Microsoft Windows )すべてで動作します。これはフリーソフトウェアであり、 GNU Lesser General Public License (LGPL)の条件に基づいて利用可能です。
Asymptote はLaTeXを使用してラベルと数式を組版し、高品質のPostScript、PDF、SVG、または 3D PRC出力を生成します。[ 2 ] MetaPostに触発されていますが、C言語のような構文を持っています。TeX / LaTeX が数式の組版のための言語を提供するのと同様に、数学的な図を組版するための言語を提供します。数学指向であり (たとえば、複素乗算によるベクトルの回転)、固定サイズのオブジェクト (ラベルと矢印) と図のサイズに合わせて拡大縮小する必要のあるオブジェクトとの間の全体的なサイズ制約の問題を解決するために、シンプレックス法と遅延描画を使用します。
Asymptote は MetaPost のパス構築アルゴリズムを 3 次元に完全に一般化し、[ 3 ]コマンドを仮想マシンコードにコンパイルして移植性を犠牲にすることなく高速化します。高レベルのグラフィックス コマンドは Asymptote 言語自体に実装されているため、特定のアプリケーションに合わせて簡単にカスタマイズできます。また、TeX を3 次元に拡張した最初のソフトウェア パッケージでもあるようです。[ 4 ] [ 5 ]これにより、Asymptote を3D ベクター ファイル フォーマット として使用できます。
Asymptoteは、 Python(およびTkウィジェットセット)でコーディングされたグラフィカルインターフェースxasy.pyを備えている点でも注目に値します。これにより、経験の浅いユーザーでもオブジェクトを素早く描画し、.asyソースコードとして保存することができ、それを手動で確認したり編集したりできます。
このプログラムの構文は、元々はYacc互換の文法を用いて記述されていた。
以下のソースコードを使用すると、Asymptote言語を用いてヘヴィサイド関数のグラフを描画できます。
import graph ; import settings ; outformat = "pdf" ;サイズ(300、300 )// 関数。real [] x1 = { - 1.5 , 0 }; real [] y1 = { 0 , 0 }; real [] x2 = { 0 , 1.5 }; real [] y2 = { 1 , 1 }; draw ( graph ( x1 , y1 ), red + 2 ); draw ( graph ( x2 , y2 ), red + 2 );draw (( 0 , 0 ) -- ( 0 , 1 ), red + 1.5 + linetype ( "4 4" )); fill ( circle (( 0 , 1 ), 0.035 ), red ); filldraw ( circle (( 0 , 0 ), 0.03 ), white , red + 1.5 );// 軸。xaxis ( Label ( "$x$" ), Ticks ( new real []{ - 1 , - 0.5 , 0.5 , 1 }), Arrow ); yaxis ( Label ( "$y$" ), Ticks ( new real []{ 0.5 , 1 }), Arrow , ymin =- 0.18 , ymax = 1.25 ); // 原点。labelx ( "$O$" , 0 , SW );上記のコードを実行すると、以下のPDF出力が得られます。
