6.2 任意の多角形を作るためのデータの準備

次のページ

 任意の形状の多角形モデルを作るためのコマンドに、 RPOLYG/REGFL/REGLC の3種を準備してあります。これらのコマンドは、ユーザーの側で注意深くデータを準備しなければなりませんし、データの量も多くなります。データ相互に矛盾があると、正しい図形が得られません。データの準備方法と、幾つかの注意事項をまとめます。

 コマンド RPOLYG は、穴を持たない、多角形一つ分の頂点座標を配列に納めて、プリミティブの名前、配列名、頂点数、をパラメータとして引用すると、多角形のプリミティブを作ります。例えば、頂点数がmであれば、実数型1次元の配列 POS(2m)、または2次元の配列 XYPOS(2,m) に(X1,Y1,X2,Y2,....,Xm,Ym)の順にデータを準備します。BASIC 言語の READ 文を応用するときには、 DATA 文に必要な数だけの数値を準備しておきます。このとき、データに整数・実数が混在していても、すべて実数型で扱われます。座標値を与えるときの基本的な注意は、次です:

 コマンド REGFLは、地図のように、複数の多角形領域が辺を介して接続した図形を、ユーザが準備したデータをもとに幾何モデルに構成します。このコマンドに使用するパラメータは、第1章の多面体生成のコマンド PHDFLとほとんど同じです。PHDFL では頂点座標が3次元ですが、REGFL は頂点座標を2次元で準備するだけの違いです。上で説明したコマンド RPOLYGは、穴を開けた図形が扱えませんが、REGFL は穴あき図形も扱えます。領域の指定は次のようにします:

 上の整数値の並びにおいて、一つの頂点で複数の領域が接している場合には、頂点番号が重複して現われます。頂点番号の並びを納める一次元の整数配列の寸法を、一意に決定することはできません。寸法の目安は、(頂点数+領域数)の2倍です。例題の BASICプログラムには、REGFL に利用するデータとして、製図モデルの展開図を使っています。これは第5章説明した展開図の二次元モデルを作成し、これを FSSAVE を使ってファイルにデータを書き出し、その必要な部分を編集してデータ文にまとめたものです。ファイルの利用についての説明は、後の第9章で説明します。

 最後のコマンド REGLCは、一辺 2*radius の正方形を、直線を使って切り離して凸多角形を作るもので、多面体生成のコマンド PHDFCに対応するものです。直線の式:
     f(x, y) = a*x + b*y + c = 0
において、直線の数だけの係数(a, b, c)を、実数の配列に入れてコマンドに引用します。切り除くのは、直線の正側、つまり f(x, y) >0 の範囲です。向きと範囲の指定とを間違えると、全然切断されなかったり、または図形がなくなってしまいます。


次のページ