[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:01167] Re: 回転移動情報の反映方法
♪♪♪♪♪♪♪ネット上オークションサイト【eオークション】♪♪♪♪♪♪
今月中に無料買い手登録をすると……
ヒルトン東京、横浜ベイシェラトン、ホテルオークラなど
高級ホテルの宿泊券がドドーンとあたる!http://www.eac.ne.jp
●ホテルのスイートルームをなんと15,000円(2人分)からオークション中!●
えんどうです。
> Rotate(3)の変更も反映させたいのですが、どのような方法があるのでしょうか?
> (上記の処理では反映されない事はわかるのですが、どのような処理を追加すれば
> 良いのかがわかりません)
>
> 実際のプログラムは、ある平面にマウスドラッグで線を書くのですが、
> 平面をMouseBehaviorで動かした後に、その平面上に線を描くというものです。
com.sun.j3d.utils.behaviors.mouse パッケージのクラスですが、
MouseRotate -> 回転
MouseTranslate -> XY平面での移動
MouseZoom -> Z軸方向への移動
となっています。
http://www.javaopen.org/j3dbook/examples/QuatTest/QuatTest.java
上記サンプルではこんなことをやっています。
private Quat4f quat4f = new Quat4f();
:
MouseRotate rotator = new MouseRotate(trans);
rotator.setSchedulingBounds(bounds);
rotator.setupCallback( new MouseBehaviorCallback() {
public void transformChanged(int flag, Transform3D trans) {
trans.get(quat4f);
tuplePanel.set(quat4f);
}
});
root.addChild(rotator);
ここでは回転を Quat4f に取得して表示しているだけですが、
ここで別の Transform3D に setRotation(Quat4f) してやれば
良いのではないかと思います。
(このあと別のオブジェクトを回転させたい場合は回転を乗算する
必要はあると思います)
同様に、移動についても Transform3D#get(Vector3f) で取得できると思います。
---
ENDO Yasuyuki <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/index.html (Japanese Only)