[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:01180] Re: RotationInterpolatorのaxisOfRotationについて
======================================================================
┌────┐ 1.会員登録をする(無料)
(( /⌒│\ P /│⌒\ )) 2.好きな情報をたくさんキャッチする
/へへ│ \/ │へへ\ 3.ポイントを集めて、賞品と交換する
└────┘ ☆★☆ ポイントメール ☆★☆
・...・ http://www.pointmail.co.jp/
===================================================================ad=
小池です。
Interpolatorを使ったことはないので完全に想像ですが。
ソースもないし・・。
At 19:33 99/12/23 +0900, 冨塚 義浩 wrote:
>
> 現在、ピックされた最上位のTransformGroupを取得して回転や移動などの
> 振る舞いを与える段階までは成功しているのですが、ピックしたパーツが
> グローバル座標の原点位置(0.0, 0.0, 0.0)から動作を開始してしまいます。
> ピックしたパーツは(0.0, 29.0, 0.0)に存在しているのですが。
確認ですが、「ピックされた最上位の」というのは、動かす
対象のサブグラフの中の最上位と言うことですよね。
グローバル座標の原点位置(0.0, 0.0, 0.0)から動作を開始、
というのは、Interpolatorの軸がグローバル座標系の
座標軸になっている、ということでしょうか。
> RotationInterpolatorを例に挙げると、
> axisOfRotationに設定しているTransform3Dの値が変なのだと思うのですが、
> よく考えるとTransform3Dにどんな値を設定したらいいのか、
> 恥ずかしながら分かりません。今はたぶんIdentity状態だと思います。
想像ですが、ちょっとAPIの説明を見たところでは、この
Transform3Dが、RotationInterpolatorの回転軸を決める、
と書いてありますから、
TransformGroup target = ...
Transform3D targetTransform = new Transform3D();
target.getTransform(targetTransform);
Vector3d targetTranslation = new Vector3d();
targetTranslation.get(targetTranslation);
Transform3D axisOfRotation = new Transform3D();
axisOfRotation.set(targetTranslation);
でいいかも、という気がします。
Interpolatorに関しても詳しい方がいらっしゃるので、
間違いであれば訂正してくださることを期待しつつ・・(^^;
そういえば、Java3Dについてくるデモで、ConicWorldは
複数の物体がくるくる回ってるものでした。参考になる
かもしれません。
/* written by Koike,T. */