0.3 GEOMAPで利用しているデータ構造

  目次へ戻る

 GEOMAPのサブルーチンライブラリの開発は、穂坂・木村[1]によって1970年代の後半から始まり、その後ずっと継続的に種々の機能が追加されてきました。1970年代は、コンピュータのメインフレームには種々の種類があって、中型機は16ビットのマシンでした。中型機用のプログラムがその後の16ビットパーソナルコンピュータでの利用に転用され、大型機用のプログラムが32ビットのパーソナルコンピュータでの利用に復活しています。1970年代、ユーザーはFORTRANのメインプログラムを書いて、その中からGEOMAPのサブルーチンを引用する形で利用しました。この面倒さを避けるインタラクティブな方法が種々試されましたが、当時爆発的に普及した8ビットのマイクロコンピュータのBASICインタプリタの考え方を取り入れたNUCE_BASICを島田が開発し、そこからGEOMAPのサブルーチンを特殊コマンドとして参照できる方法としました。

 GEOMAPは、立体形状を多面体の幾何モデルにして処理します。多面体は、頂点・辺・面の集合で表し、これらの個々のデータを32バイト単位のリストセルに保存します。一つのモデルはこれらのリストセルを相互にポインターで結んで関連を付けておきます。この方法では、例えば直方体一つを表すとき、8頂点、12辺、6面、計26セルと余分に管理用に2セルを使うので、合計896バイトを費消します。16ビットのパーソナルコンピュータでは、一つの論理単位として利用できるメモリーの最大値が64KBと制限されていましたので、せいぜい70個止まりの直方体の集合で表される程度の多面体モデルしか扱うことができませんでした。しかし、この程度でも教育には充分に利用できます。このテキストはこのような教育目的を持って構成しました。32ビットのコンピュータシステムでは、64KBの制限がなくなりましたので、より専門的な利用に耐えられるようなバージョンが別に準備されています。なお、設計では初等幾何の原理も基づく数値計算が頻繁に利用されます。幾何の計算に適したコンピュータ言語として、NUCE_BASICの上位言語としてGEOMETRY_BASIC (G_BASIC) [2]が開発されています。この言語の使い方については、別にまとめたテキストを参照して下さい。

 GEOMAPによる幾何モデリングの手順は、機械部品の製作の手順を念頭においています。この考え方は平面図形の処理にも原理的に応用したコマンドが準備されています。まず材料となる単純な形状を幾つか用意します。これをプリミティブ(primitive) と呼びます。これらを切断したり、削ったり、所定の位置に置いてつなぎ合わせたりすることで、目的の形状に合成(synthesize)していきます。この合成の過程や結果をコンピュータグラフィックスで観察して、製品の出来上がりを評価することができます。また、モデルの表面積・体積・重心位置・慣性モーメント・および主軸の向き、なども計算できます。立体的なモデルは多面体(Polyhedron)、平面図形は地図のような領域(Region)の集合と考えます。GEOMAPのコマンド名の命名方法は、Pで始まるものは多面体の、Rで始まるものは平面図形の処理を表すようにしました。そのため、PUNI/PSUB/PINTとRUNI/RSUB/RINTのような対応したコマンド名が幾つもあります。GEOMAPのモデルを作成するとき、ユーザーはその寸法などを数値データとしてCUIの環境で準備しなければなりません。これはユーザーの作業性(workability)には大きな負担になります。これをGUIの環境を利用して解決を図ることが望まれています。この解決には、GEOMAPの前後処理を便利にするpre-processor, post-processorを考えています。例えば、マウスを使った任意図形データの簡便な入力方法や、グラフィックスを別のデバイスでも得られるなどの処理がそうです。上でも触れたG_BASICもその一つの試みです。


目次へ戻る