9.2 コマンドFSLOAD/FSSAVE のテキストファイルの解説
次のページ
第1章でPHDFLで多面体モデルを生成する方法と、第6章でREGFLで地図モデル生成する方法を例示しました。この場合、ユーザーはデータの幾何学的かつトポロジカルな関係に矛盾がないように注意しなければなりませんでした。FSSAVEは、すでに作られているモデルのデータを、このデータ入力の仕様と殆ど同じ方式でテキストファイルとして書き出します。このテキストファイルを見れば、幾何モデルがどのように作られているかを理解できますし、適当にデータを編集すれば、別のモデルの生成に利用できます。ファイルの中身の見本は図9.2と9.3とにしめしました。図9.2のリストは、多面体モデルのデータであり、図9.3のリストはそれを展開図にした二次元の地図モデルにしたものです。それらの解説を下にまとめます。
- 第一行は、5つの整数(icel, icmark, nf, ne, nv)がリストされます。icel=4は多面体を示し、 icel=19は地図状の図形を示す、それぞれリストセルを表すマークです。次のicmark=800は、種々の属性を表していますが、ここでは説明を省きます。重要なのは、nf,ne,nvで、それぞれ多面体の面数、辺数、頂点数です。
- 第2〜5行にわたる4行は、この多面体が持つ内部座標系です。最初の3行は、それぞれの座標軸の向きを表す単位ベクトルの、3つの方向成分です。最後の1行は、この内部座標系の原点座標です。いずれも、相対的に世界座標で定義されています。
- 第6行以降には、頂点座標が示されています。頂点数は、上の nv で与えられていますので、プリントリストで何行とるかが分かります。
- その次からは、辺のデータが1行5つの整数で、ne行並びます。一行の整数は、その辺が結ぶ二つの頂点の番号、その辺を境界とする二つの面の番号、そして、作業用のマークです。
- さらに、面の数 nf だけの面データが並びます。これは、2つの整数と、4つの実数とから構成されます。整数は面の性質を表す作業用マークですが、ここでは説明を省きます。4つの実数は、面を表す代数方程式(4-1) の4つの係数です。
- 最後に、1行に14個づつの整数が並んだ行が続きます。このデータの終りは、整数の 9999 で指定され、それ以降のデータは無効です。 0がリストされていますが、ファイル書き出しの際の埋め草です。このデータは、面を左に見ながら一周する順に頂点番号を並べたものです。ひとつの面のデータの区切りは 9900 です。もし面の内部に穴を持つ場合には、穴を一周する頂点番号の終りを 9000 で区切ります。面データの順番は、すぐ上で示した面方程式の順になっています。このデータ仕様は、 PHDFLとPREGFLでのデータ入力仕様と同じです。
- コンピュータ内部では、頂点・辺・面の番号は、リストセルのアドレスをポインターとして参照しますので、テキストファイルの入出力に際しては、番号の付け直しが行なわれています。
- 展開図は、典型的な地図型の多角形の図形モデルです。このデータ構造は、基本的に多 面体のデータ構造を使っていますので、多面体のデータと比較して理解してください。多面体のデータと異なるのは、x座標を奥行きの参照データとしていることです。図形 としての頂点座標は、(y,z)成分です。
- 辺のデータを表す5つの整数のうち、最後の整数には、展開図を作成したときの、辺での切り開きの情報がそのまま残っています。
- 平面図形では、面の向きはすべてx軸の正の向きを向いています。面の位置は、頂点の奥行情報と同じx=−1になっています。
次のページ