座標系の原点位置指定
< 前へ [ トップへ ] 次へ >

 座標系を移動させるのに、これまでは move メソッドを使用してきました。
 しかし、追加移動である move メソッドを何度も呼び出していると、座標系がどこに在るのかを把握するのが困難になります。従って、move メソッドは決まった軌道に沿って座標系を動かしたい場合などには向きません。
 そこで、ここではもう一つの位置指定方法である、原点位置指定について解説します。


 原点位置の指定

・move メソッドは追加移動
 これまでにも既に、座標系を平行移動する方法として move メソッドを扱いましたが、move メソッドは現在の位置から追加移動させるための機能でした。これはその場その場で、逐次的に次の動き方が決定されるような運動を扱うには便利です。しかし逆に、あらかじめ定まった軌道に沿って、座標系を正確に移動させる必要がある場合などには不向きと言えるでしょう。

・原点位置指定
 このような場合は追加移動では無く、座標系の原点の位置を直接指定するほうが便利です。それには
CoordinateSystem3DEG クラスの setOrigin メソッドを用います。引数には原点位置ベクトルの中身を double 値で指定します。

setOrigin( double 原点X, double 原点Y, double 原点Z )

 それでは、例としてローカル座標系をワールド座標系に配置し、原点位置を( 1, 2, 3 )に指定してみましょう。なお、これは当然ながら move メソッドを使用した場合と全く同じ結果になります。


import rxvesapi.system3d.geometry.*;
import rxvesapi.system3d.renderer.*;
import rxvesapi.system3d.model.*;


import java.awt.Color;


public class Test{

  public static void main(String[] args){

    /*3D仮想空間*/
    Realtime3DFrame frame = new Realtime3DFrame();

    /*frameのワールド座標系を取得*/
    CoordinateSystem3DEG world = frame.getWorldSystem();

    /*frameのワールド座標系を取得*/
    ScreenSystem3DEG screen = frame.getScreenSystem();


    /*ローカル座標系を用意*/
    CoordinateSystem3DEG local
      = new CoordinateSystem3DEG();
    double angle = Math.PI*60.0/180.0; // 60度のラジアン角
    local.setOrigin( 1.0, 2.0, 3.0 ); // 原点位置指定
    world.add( local ); // ワールド座標系上に配置


    /*座標軸モデル1*/
    AxisModel3DEG axis1 = new AxisModel3DEG();
    world.add( axis1 ); /*ワールド座標系上に配置*/
    screen.request( axis1 ); // 描画リクエスト

    /*座標軸モデル2*/
    AxisModel3DEG axis2 = new AxisModel3DEG();
    local.add( axis2 ); // ローカル座標系上に配置
    screen.request( axis2 ); // 描画リクエスト

  }
}

▼実行結果




 原点位置の取得

・現在の原点位置を取得する
 move メソッドによる追加移動を繰り返し行わせている際などで、時として現在の座標原点の正確な位置情報が必要になる場合があるかもしれません。その場合は getOriginX、 getOriginY、 getOriginZ メソッドを使用します。これらのメソッドは、それぞれ座標原点のX位置、Y位置、Z位置を double 値で返します。


原点のX値を取得する場合:
getOriginX( )

原点のY値を取得する場合:
getOriginY( )

原点のZ値を取得する場合:
getOriginZ( )
< 前へ [ トップへ ] 次へ >


スポンサーリンク



スポンサーリンク

この階層の目次
新しいお知らせ

リニアンプロセッサー nano の先行開発版やソースコードリポジトリを公開
2019年04月16日 - オープンソースで開発中の小型プログラム関数電卓ソフト、「 リニアンプロセッサー nano 」の先行開発版やソースコードリポジトリを公開しました。概要と使用方法、ビルド方法などについて解説します。

各ソフトウェアの最新版を一括でリリース、OpenJDKのJava実行環境(JRE)に対応
2019年03月06日 - RINEARNでは3月6日に、主要なソフトウェアの最新版を一括でリリースしました。今回のアップデートには、以前お知らせした、OpenJDKで生成したJREへの対応が含まれています。その概要等をお知らせします。

次回のVCSSL 3.4.10において、関数1個の挙動に非互換な修正が適用されます
2019年02月12日 - VCSSLの次回の正式リリース版3.4.10において、これまでドキュメントと実際の挙動が異なっていた描画系の関数1個に、非互換な修正が適用されます。その詳細と、使用コードでの対応方法について解説します。

コードアーカイブ新着
[公式ガイドサンプル] 立体モデルを生成して3D空間に配置する

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを生成し、3D空間に配置します。
2019年05月21日
[公式ガイドサンプル] ポリゴンを生成して3D空間に配置する

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体の基本的な構成要素となるポリゴンを生成し、3D空間に配置します。
2019年05月20日
[公式ガイドサンプル] CSVファイルにデータを書き出し&読み込んで、複雑な3次元曲面のグラフを描く(魔法陣形)

「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを書き出し、さらにそれを読み込んで、魔法陣のような3次元曲面のグラフを描画します。
2019年05月17日
[公式ガイドサンプル] CSVファイルにデータを書き出し&読み込んで、複雑な3次元曲面のグラフを描く(花形)

「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを書き出し、さらにそれを読み込んで、花の形の3次元曲面のグラフを描画します。
2019年05月16日
[公式ガイドサンプル] CSVファイルにデータを書き出し、読み込んで3次元のメッシュグラフを描く

「VCSSLスタートアップガイド」内のサンプルコードです。CSVファイルにデータを書き出し、さらにそれを読み込んで、3次元のメッシュグラフを描画します。
2019年05月16日
公式Twitterアカウント

スポンサーリンク