Eukleides

Eukleides

Eukleides は初等幾何図形を簡単に描くことができる言語です。 コンソール・ベースの Eukleides コンパイラ eukleidesPSTricks マクロによる TeX ファイルを生成します。 X のウィンドウに表示する xeukleides プログラムを使うとインタラクティブに編集、プレビューができます。

作者: Christian Obrecht さん
ホームページ: http://www.eukleides.org/
バージョン:
  eukleides: 1.0.0 (2004/05/12)
  xeukleides: 1.0.0 (2004/05/12)
ライセンス: GPL
eukleides の READMEを読む
xeukleides の READMEを読む

バージョン 0.3.4 までは euklides という名前でした (どちらもユークリッドのことです)。
eukleidesxeukleides は別々に配布されていますが、ここではひとつの RPM パッケージとしています。
ソースは CTAN (国内のミラーは、例えば Ring Server) からも入手 (support/eukleides/) できます。 CTAN については例えば奥村さんが主催する TeX Wiki CTAN とは? をご覧ください。

使い方

インストールしたら、まず xeukleides を動かしてみましょう。 ターミナル・エミュレータから

$ xeukleides

で起動します。

Simple Triangle 起動するとテキストを入力するウィンドウが開きます。 簡単な例として三角形を描いてみましょう。次のように入力します。

A B C triangle
draw(A, B, C) 

これだけで「適当に」三角形 ABC を描いてくれます。 図形を表示するには View メニューの Figure を選択します。 または Esc キーを押しても切り替わります。

View Menu

三角形の各辺の長さを指定するなら

A B C triangle(3,4,5)

のようにします。 デフォルトでは辺 AB は x 軸に平行になりますが、 角度を指定することもできます。

Eukleides の文は代入文またはコマンドです。 一行に複数の文を書くときは ; で区切ります。

A B C triangle

は、変数 A, B, C に三角形を作るような点を代入するマルチ代入文です。 もちろん座標値を使って

A = point(1,1)
B = point(5,1)
...

のようにもできますが、Eukleides はできるだけ座標値を直接扱わなくて済むようにできています。

Eukleides のホームページ ではいくつかの サンプル が紹介されています。

isosceles.euk incircle.euk parallelogram.euk

普通のドローイングソフトでは面倒な、円の接線や内接円なども Eukleides ならいとも簡単に書くことができます。

Eukleides で書いた図形を TeX に変換するには eukleides コマンドを使います。 結果は標準出力に得られます。 このページの先頭の図の Eukleides ソース feuerback.euk を TeX に変換してみましょう。

$ eukleides feuerback.euk > feuerback.tex

生成される TeX では、 PSTricks パッケージのマクロが使われるので、なければインストールしておきます (MLD 6、MLD 7 の tetex には PSTricks が含まれています)。

直接 PostScript ファイルにしたい場合は、シェルスクリプト euk2eps が用意されています。

$ euk2eps feuerback.euk
This is eukleides version 1.0.0
Copyright (c) Christian Obrecht 2000-2004

これで feuerback.eps ができます。 このページ先頭の図は gv で表示したものです。

フォイエルバッハの定理は 「三角形においてその九点円は内接円に内接し傍接円に外接する」 というものです。九点円とは 「三角形の三辺の中点、三本の垂線の足、三頂点と垂心の中点は同一円周上にある」。 feuerback.euk ではそのうち三辺の中点と三本の垂線の足を描いています。

euk2edit というシェルスクリプトも付属していますが 使用するには pstoedit が必要です (残念ながら MLD には含まれていません)。

インストール

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

# rpm -i eukleides-1.0.0-1_mlb1.i386.rpm

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

パッケージの更新履歴

[2004/05/13] eukleides-1.0.0-1_mlb1.i386.rpm
eukleides.1.0.0, xeukleides.1.0.0 にアップデート。
新しいコマンド strokes, label の追加のほか、draw コマンドの拡張など、改良とバグ修正がおこなわれています。
[2003/05/09] eukleides-0.9.2rev2-1_mlb1.i386.rpm
eukleides.0.9.2rev2, xeukleides.0.9.2rev2 にアップデート。
xeukleides の trace コマンドのバグが修正されました。
[2002/11/16] eukleides-0.9.2rev1-1_mlb1.i386.rpm
eukleides.0.9.2rev1, xeukleides.0.9.2 にアップデート。
Eukleides のソースに任意の PSTricks マクロを含めることができるようになり、xeukleides では export() で数値を標準出力に書き出す機能が追加されました。
[2002/06/28] eukleides-0.9.1rev1-1_mlb1.i386.rpm
eukleides.0.9.1rev1 にアップデート。
"ラベル" が正しく解析されないことがある不具合が修正されました。
[2002/06/24] eukleides-0.9.1-1_mlb1.i386.rpm
eukleides.0.9.1, xeukleides.0.9.1 にアップデート。
円の intersection に関して、および trace コマンドのバグが修正されました。
[2002/02/04] eukleides-0.9.0-1_mlb1.i386.rpm
eukleides.0.9.0, xeukleides.0.9.0 にアップデート。
trace コマンドが追加されました。サンプル locus.euk では 外側の円をトレースして内側の円を描いています。
[2001/12/08] eukleides-0.4.2-1_mlb1.i386.rpm
eukleides.0.4.2, xeukleides.0.2.2 にアップデート。
thickness コマンドの追加 (xeukleides では無効)、 サンプルファイルの追加、いくつかの改善と不具合修正など。
[2001/11/03] eukleides-0.4.0-1_mlb1.i386.rpm
eukleides.0.4.0, xeukleides.0.2.0 にアップデート。
円錐曲線 (conic curve) が描けるようになったほか、 サンプルファイルがいくつか付属するようになりました。

その他

eukleidesxeukleides それぞれに man page がありますが、言語の詳細説明は TexInfo で用意されています。

$ info eukleides

として読むことができます。Info は gnome-help から参照することもできます。 HTML バージョンは Eukleides のホームページから入手できます。

xeukleides には、数値変数の値をカーソルキーを使って インタラクティブに増減できる面白い機能があります。

x interactive(5, 0.5, "A", up)

という代入文は、初期値として変数 x に 5 を与えますが、キーボードの「a」を押してからカーソルキーの up/down を押すと 0.5 きざみで変数 x の値を増減し、図形を書き直します。 eukleides では単に初期値の代入が行なわれます。
上の例で "A" はこの対話的代入に付けた名前で、 大文字のアルファベット一文字で指定します。 ただしキーボードでの切り替えは小文字 (Shift キーは押さない) です。 最後の引数で up ではなく right と指定すると right/left キーで増減します (合計 52 個の変数をインタラクティブに増減できることになります)。

interactive の使用例:

x interactive(5, 0.5, 1, 10, "A", right)
y interactive(4, 0.5, 1, 10, "A", up)
A B C D parallelogram(x, y, 105:) ; draw(A, B, C, D)

ここでは下限と上限も指定しています。

View メニューの Snapshot は、インタラクティブな代入の初期値を現在の値で書き換えます。

参考

幾何図形に関する Web ページ

[2001/09/05 作成] [2004/05/13 更新]


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