surf

surf は 代数的な曲線、曲面を描くプログラムです。

作者: Stephan Endrass さん、Johannes Beigel さん他
ホームページ: http://surf.sourceforge.net/
バージョン: 1.0.3 (2001/04/01)
ライセンス: GPL
付属ドキュメント README を読む
付属マニュアルを読む

使い方

インストールしたらターミナル・エミュレータから

$ surf

で起動します。

ここでスクリプトを記述するのですが、サンプルのスクリプトが /usr/share/surf/examples/ にあります。右に並んでいるボタンの load script... をクリックして出てくるファイル選択のダイアログで、ディレクトリ /usr/share/surf/examples/surfaces から quintic.pic を選択し、execute script をクリックすると上のような美しい曲面が描かれます。

surf ホームページの Gallery ではいろいろな曲面を見ることができます (ほとんどがサンプルスクリプトとして付属しています)。

上記のスクリプトを見ると 長々と面倒なことを記述しないといけないように思われるかもしれませんが、 ほとんどは位置、倍率、回転、視点、イルミネーションなどの見栄えの設定です。 曲面の定義そのものは surface という変数に式を定義するだけです (曲面は9つまで定義できます)。

単純な例としてマニュアルにある例題をやってみましょう。球面

x2 + y2 + z2 - 80 = 0

を描きます。

surface = x^2 + y^2 + z^2 - 80;

この1行を記述して draw surface をクリックするだけで下のような画像が得られます。

描画範囲は -10 <= x, y, z <= 10 となっています。表示サイズを変えるには各座標のスケールを指定します。 またデフォルトでは半径 10 の球面でクリップされます。 光源は最大9つまで設定でき、デフォルトでは3つ (light1, light3, light8) が点灯しています。

見栄えに関係するパラメータは configuration... をクリックして出てくるパネルで設定できます。 これらをスクリプト中で設定するには、例えばスケールなら

scale_x = 0.5;
scale_y = 0.5;
scale_z = 0.5;

のように記述することになります。また

draw_surface;

と書き加えておけば execute script で描画されます。

曲線の例もやってみましょう。 デカルトの葉線

x3 + y3 - 3axy = 0

を描くには

double a = 4.0;
curve = x^3 + y^3 - 3.0*a*x*y;

のように記述して draw curve をクリックします (このように自前の変数が使えます)。 a の値を変えると形が (この場合は正確には大きさが) 変わります。

デフォルトでは半径 10 の円でクリップされます。 クリップしないようにするには configuration... の clip タブを開いて Clip at: のところで none を選択します。draw curve では clip は sphere と none 以外は無効です。
曲面の場合と同じように、

draw_curve;

を書き加えておけば execute script で描画されます。ただし、この場合は画面の消去が自動では行われないので

clear_screen;

を先に書いておく必要があります。 逆に言えば複数の曲線を重ね描きしたり、曲面の表示の上に曲線 (や断面) を描くことができます。
曲線のサンプルスクリプトは /usr/share/surf/examples/curves にあります。

制御構文としては唯一

if( INTEGER-EXPRESSION ) goto LABEL;

が使えます。

コマンドラインオプションは man page を参照するか、

$ surf --help

で表示します。 HTML 形式のマニュアルは /usr/share/doc/surf-1.0.3/docs/manual.html にあります (記述内容に現状と違っているところがあるようです。 少なくとも clip のモードに関しては変更になっています)。

インストール

LinuxMLD 5,6,7 用の RPM surf-1.0.3-1_mlb2.i386.rpm (279,385 bytes) をインストールします。
rpm コマンドでインストールするにはスーパーユーザになって

# rpm -i surf-1.0.3-1_mlb2.i386.rpm

とします。
MLD 5,6 では Gnome の GUI でインストールすることもできます。

その他

surf は最初 (Version 0.91 まで) SUN の X Window ツールキット XView で開発されました。興味のある方は The surf homepage (古いホームページ) を参照してください。

参考

Web 上の参考になるページを御紹介します。

関数グラフを描くアプリケーションについては geg のページを参照してください。

[2003/01/18 作成] [2007/02/02 更新]


このページに関する御意見、御要望を science@mlb.co.jp までお寄せ下さい
Copyright © 2003-2007 Media Lab. All Rights Reserved.