2章 木構造モデルとその変換

ROBOT.BAS

2.1 世界座標系とモデル自身の座標系

目次へ戻る次のページ

 積み木など、物を手に持って平行移動や回転をさせることは日常的な動作ですが、このとき我々は座標の概念を全く必要としていません。図学や製図では投影面という概念を使いますが、これは座標系ではありません。計算機を使って幾何の問題を扱うときには、数値で形や位置を指示しますので、種々の座標系を利用しなければなりません。幾何モデルを一つだけ考えるとき、これを世界座標系の中で考えます。二つ以上のモデルを考えるとき、モデルそれぞれに世界座標系と相似な局所座標系を持たせ、それぞれの相対的な位置関係を考えます。

 座標系を感覚的に理解するには、座標系を3本の単位長さの線分を集めたワイヤーフレームモデルを想像するのが良いでしょう。この線分は、一点、つまり原点を起点として互いに直交し、右手系のデカルト座標を示すような構造になっていると考えます。グラフィックスで立体モデルと一緒に描くときは、線分の長さを少し大きめに描いたり、矢印を先端に付けたりして描き込むとよいでしょう。この目的にはDQMOVE/DQDRAWを使うと便利です。

 前の第1章でプリミティブを作成したとき、このデータ構造ではモデル個々に局所座標系を持たせてあるのですが、それは世界座標系と一致しています。二つ以上のモデルを作ると、これらは仮想の世界座標の中で同じ位置に重なって作られます。我々の現実世界と同じように、モデルが別々に独立して見えるようにするには、この仮想の世界の中でモデル相互を移動や回転をさせて位置決めをしなければなりません。これをモデルの変換と言い、数学的には三つの成分で考えます。これは、平行移動、回転、そして変形です。最初の二つはモデルに変形が起こりませんので、力学では剛体運動と言います。GEOMAPでは、立体の幾何モデルの変換を行なわせるコマンドは、PG*** の形をしています。これらのうち、PGDISが平行移動, PGROT/PGROTA が回転、PGPAN/PGLONG/PGFACTがモデルを引き伸ばしたり縮めたりして変形させるコマンドです。

 モデルを移動・回転・変形させたりするとき、座標系との関係を充分に理解しておかなければなりません。上の第2パラグラフで説明したように、幾何モデルは、形状のデータと同時にその局所座標系となるワイヤーフレーム構造の二つのモデルで構成されていると考えます。普通に移動と回転の変換を考えるとき、二つのモデルは一緒に移動すると考えるのが最も普通です。しかし、座標系は元のままにしておいて、モデルだけを動かしたり、また逆に、モデルをそのままにしておいて、モデルの座標系を変えたい場合もあります。 これらに必要とするパラメータの最後に imod があって、これでモデル本体とモデル自身の座標系との変換モードを指定します。
imod = 0 本体も座標系も同時に変換します。デフォールトの設定です。
imod = 1 本体だけが変換され、座標系は元のままです。
imod = -1 座標系だけを変換させるときに指定します。
 幾何モデルに、変形を起こさせるPGPAN/PGLONG/PGFACTの場合には、モデルの座標系を変形させてはなりませんので、imodの設定はなく、いつもimod=1に指定されているとした変換が行なわれます。 


次のページ