8章 平面図形から2.5Dモデルへの変換

JAPAN.BAS/OVERLAY.BAS

8.1 Two-and-half modelと地形モデル

目次へ戻る; 次のページ

立体的な地形モデルを、高さに比例した厚みの厚紙を重ねて作ることを考えます。等高線に沿って切りだした平面図形の厚紙を、高さの順に積みあげると、階段や段々畑のような形状ができます。このような構造を幾何学的に見ると、ブロック分けされた平面図形の領域それぞれに、高さの情報を持たせることで定義できます。領域の境界は垂直の壁になり、屋根のような傾斜した面を持たず、またオーバーハングや空洞など上から見て見えない面がありません。基準平面から下を考えない上半分の三次元構造を考えますので、これを俗に2.5次元モデル(two-and-half model)と呼びます。

地形のような曲面を表わすモデルには、形式的にz=f(x,y)の関数図形を考えます。高さzのデータは、方眼状に地表を区切って、方眼の交点での高さとして与えます。地形測量の分野では、この図形データを digital terrain modelと言います。このモデルの特徴は、地形に垂直の壁やオーバーハングがないと仮定することです。数学的に言えば、関数z=f(x,y)が1価関数であることです。この地形モデルは、単位の方眼の曲面は4隅の高さで与えます。この面は一般に幾何学的な平面性が保証されません。つまり、このままではGEOMAPで使う多面体モデルの条件に合いません。平面性を保つモデルは、方眼に対角線を入れて三角形要素と考えることです。三角形要素で全体を覆うモデルは、構造力学の分野で有限要素法(FEM: Finite Element Method)という解析方法で利用されています。人体モデルのように、全体が曲面で覆われている形状をコンピュータグラフィックスの処理を行なうときは、GEOMAPのような図形の干渉処理をしませんので、三角形要素で曲面全体を覆う方がGEOMAPで扱うようなデータ構造よりもずっと簡単な表わし方ができます。

コマンド RTOP25 は、領域(Region)から 2.5次元の多面体(Polyhedron)への(to)変換を行ないます。第 6.1節の最後のパラグラフで、平面図形を生成するときに高さのデータも与えることもできることに触れておきました。第7章の図形の干渉処理においても、図形を上に重ねて下の図形を隠す処理 ROVL がありますが、この処理では、高さの違いを情報としては利用しません。平面図形に、後から高さの情報を付け加えるコマンド RHIGHT も用意されています。コマンド RTOP25 は、基準平面を標高0として、与えられた高さの柱状の多面体を作ります。平面図形の領域に与える高さの情報は、他の目的にも利用できます。

平面図形の幾何モデルの構造については、第6.1 節の始めに簡単な説明をしました。大事なことは、多面体の立体モデルと多角形の図形モデルとは基本的に同じ3次元の構造を持つということです。図形モデルの方は、頂点の(y, z)座標で図形を表わします。平面図形から 2.5次元モデルに変換するときには、あらかじめ領域に高さを与えておいて、コマンド RTOP25 で処理します。このとき、図形の方の3次元座標系を多面体の3次元座標系に座標変換を行ないます。すなわち、y→x、z→y、x→zとします。変換された多面体モデルは、同じ(xy) 座標を持ち、高さzの異なる二つ以上の頂点を生成し、垂直な辺と垂直な矩形の面とが追加生成されます。上から見た多面体は、元の平面図形で、地図のような複数の領域を持ちますが、底面は境界のつながった一つの平面になります。


次のページ