10章 幾何モデルのデータ取り出し

QUERY.BAS

10.1 データ問い合わせのコマンド

目次へ戻る; 次のページ

GEOMAPの作業領域に幾何モデルが生成されたとき、ユーザーが頂点、辺、面の具体的な数値データを知る方法を提供するコマンドを、データ問い合わせのコマンドといいます。これらのコマンドは、英語の QUERY を意味させて、頭文字を"Q" にしてあります。すでに第5章の展開図の作成のときに、図形がディスプレイの範囲にちょうど納まるようにウインドウの寸法を決めるデータを、コマンド QBOX を使って求めてあります。

幾何モデルのデータの構造について我々が感覚的に理解する方法は、頂点・辺・面に番号をつけ、頂点についてはその座標、辺については二つの頂点の組、その辺を境界とする二つの面の組、などのデータを知ることです。これを論理データ(logical data)といいます。幾何モデルの計算機内部でのデータ取り扱いは複雑な設計になっています。概念的な説明は第1.1 節で簡単に触れましたが、このデータを物理データ(physical data) といいます。コマンドPCUBE のように、ユーザーが計算機に対して幾何モデルの生成を依頼するときは、形状についての感覚的な定義による論理データを与えていることになります。計算機内部の物理データを、我々が理解できる論理データとして取り出すのが、ここで説明するデータ問い合わせのコマンドです。

幾何モデル全体のデータは、前の第9章で例を示してあります。ここでの問い合わせコマンドは、個々の項目についてのデータの問い合わせを行なうコマンドです。この種類は次のようになっています。

コマンド名 機   能
QFEVN 与えられた幾何モデルの面数または領域数(nf)・辺数(ne)・頂点数または節点数を求めます。
QBOX
  1. 立体モデルは、そのモデルをちょうど囲む直方体の寸法を、配列BMIN(3), BMAX(3)に返します。
  2. 図形モデルでは、そのモデルの枠となるような矩形の寸法を上と同じように配列に返します。いろいろな用途が考えられますが、例えばグラフィックスに描くときモデルが画面に収まるようにウインドウを設計するときに使います。
QFACE 面の面方程式a*x+b*y+c*z+d=0 の4つの係数(a,b,c,d)を求め、(4,nf)の寸法を持つ配列にデータを返します。面の番号を指定してその面の係数も求められます。
QEDGE 辺に関する情報として、その辺の始点・終点の頂点番号、その辺が接する左右の面の番号、辺の性質を表すコード、を知らせます。
QVERT 頂点の座標を与えます。立体モデルは3次元座標ですが、図形モデルも3次元の座標で与えられます。ただし、x座標はダミーデータになります。
QFLOOP 面を左に見て一周するループの頂点番号の並びを与えます。頂点番号のリストの仕様は、コマンドFSSAVEの出力例、またはコマンドPHDFL, PREGFLのデータ入力仕様と同じ設計です。

次のページ