Linuxユーザの立場から、役立つ情報や困ったときの解決方法を分かりやすく、かつ簡潔に記事にまとめています。主に、Ubuntu 8.04(→9.04)やCentOS 5.2(→5.3)で確認したことですが、他のディストリビューションでも応用できると思います。内容は(1)設定ファイルの書き方(2)役立つソフトウェア紹介やインストール方法(3)便利なコマンドの使い方や活用例(4)困ったときの解決方法です。このページの末尾にキーワード別で記事を分類してあります。また、真上の「ブログ検索」フォームからブログ内の記事を検索できます。

2009年9月4日金曜日

(第1回)asymptoteを使ってみる。インストール編 このエントリーを含むはてなブックマーク

「asymptote」というベクタグラフィックス記述言語を試しに使ってみたので、まとめてみる。

ことの始まり

latex文書中に、球面や放物線などの数学的な図形を挿入するための図形描画ソフトで、以下のようなイメージにあうものを探していた。

  • ベクター画像として描画。
  • 手書きでない。
  • 手軽に描画できる。

ネットで調べると、例えばTexWiki(の「関連ツールなど」のところ)に、かなり詳しい情報がまとめられていた。latex文書に挿入する画像は、「tgif」や「Inkscape」で作成することが多かったのだけど、手書きで描画したくなかったので却下した。また、「gnuplot」や「OpenGL」など他の選択肢もあったのだけど、今回はasymptoteが合ってそうなので、試しに使ってみた。

Asymptoteは、sourceforgegnuなどのサイトに詳しい説明が書いてある。

aptでインストール

ubuntu 9.04へのインストールは極めて簡単で、以下のようにコマンドラインからapt-getで入れるか、synapticを使ってインストールします。ちなみに、ポストスクリプトビューアの「gv」が入っていないならば、これもインストールしておきます(他のポストスクリプトビューアでも良いのかもしれないけれど、試していないので不明)。

# apt-get install asymptote

インストールして少し使ってみたら、3次元図形を描画するときにエラーが出てうまくいかないことが分かった(理由不明)。インストールされていたバージョンは1.43-1だったので、最新のに比べて古いようだ。よって、アンインストールして、最新のソースをダウンロードし、インストールすることにした。

# apt-get remove asymptote

ソースからインストール

公式サイトから最新のソースファイルをダウンロードする。私は、バージョン1.85のもの(asymptote-1.85.src.tgz)を入れた。Document->Installation->2.6 Compiling from UNIX sourceに書いてあるように、garbage collectorが必要なようです。
# wget http://downloads.sourceforge.net/asymptote/asymptote-1.85.src.tgz
# gunzip asymptote-1.85.src.tgz
# tar -xf asymptote-1.85.src.tgz
# cd asymptote-1.85
# wget http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.1.tar.gz
# ./configure
# make all
# make install

最初にapt-getでインストールしたときに、実行ファイルasyが/usr/binにあったけど、ソースからインストールした方は/usr/local/binに配置される。これを通知するためにリハッシュしておく。

# hash -r

動作確認

詳しい使い方は、sourceforgeにある公式サイトにDocumentが置いてあります。また、wikiもあって、分かりやすく書かれています。まず、次のようにターミナルからasyで起動します。後は、描画コマンドを順次発行して、対話式に描画していきます。以下では、原点から(100,100)に向けて線を引くように命令しています。

$ asy
Welcome to Asymptote version 1.43 (to view the manual, type help)
> draw((0,0)--(100,100));

すると、gvが起動して、きちんと線が描かれていることが確認されました。

対話モードを終了するには、次のようにする。

> quit
$

また、graph3を使って3次元図形を描画するコードを動かしてみました。このコードは、Documentに書いてあるものを使っています。エディタで、次のコードを書いてtest.asyで保存します。

import graph3;

size(0,200);
size3(200, IgnoreAspect);

currentprojection=orthographic(4,6,3);


real x(real t) {return cos(2pi*t);}
real y(real t) {return sin(2pi*t);}
real z(real t) {return t;}

path3 p=graph(x,y,z,0,2.7,operator ..);

draw(p,Arrow3);
scale(true);

xaxis3(XZ()*"$x$", Bounds, red, InTicks(Label, 2,2));
yaxis3(YZ()*"$x$", Bounds, red, InTicks(beginlabel=false, Label, 2,2));
zaxis3(XZ()*"$x$", Bounds, red, InTicks);

そして、実行して、epsファイルが生成されていることを確認します。

$ asy test.asy
$ ls 
test.asy test.eps
$ gv test.eps &

参考サイト:「TexWiki」のAsymptoteの説明ページ結城浩のはてな日記

0 コメント:

キーワード

キーワード別に記事を分類してあります。クリックすると各キーワードに該当する記事たちが表示されます。

筆者について

自分の写真
趣味はコンピュータ、音楽、写真などです。