座標系の原点位置制御

これまで扱ってきた座標系の移動や歩行は、 現在の座標系の位置を基準に、追加的に移動する方法でした。 しかし場合によっては、 座標系の原点位置を直接的に制御したい場合もあります。 ここでは、そのような座標系の位置制御について扱います。

- 目次 -

座標系の原点位置制御

原点位置の指定

座標系の原点位置を直接的に指定するには、 setCoordinateLocation 関数を使用します。

- 関数仕様 -

int setCoordinateLocation (
  int coordinateID,
  float x, float y, float z
)

最初の引数coordinateIDでは、設定対象の座標系のIDを指定します。 続く引数x、y、zでは、それぞれ原点位置のX、Y、Z方向の成分を指定します。

原点位置の取得

座標系の原点位置を取得するには、 getCoordinateLocation 関数を使用します。

- 関数仕様 -

int[ ] getCoordinateLocation ( int coordinateID )

戻り値には、 [0]、[1]、[2]にそれぞれ原点位置のX、Y、Z成分が返されます。 引数coordinateIDには、取得対象の座標系のIDを指定します。

プログラム例

実際にローカル座標系をワールド座標系の上に配置し、 原点位置の指定によってアニメーション的に移動させてみましょう。 区別しやすくするために、ローカル座標系には小さめの座標軸モデルを、 ワールド座標系には大きめの座標軸モデルを配置します。

Sample.vcssl

このプログラムを実行すると、黒い画面に座標軸モデルが表示されます。座標軸モデルは大きいものがワールド座標系の上に、小さいものがローカル座標系の上に配置されています。 ローカル座標系は、リサージュ曲線を描きながら複雑に運動します。

実行結果、移動された座標系の図
実行結果
大きな座標軸と小さな座標軸が表示される。小さな座標系はアニメーションで運動する。