[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Java3Djp:01169] Re: 回転移動情報の反映方法



♪♪♪♪♪♪♪ネット上オークションサイト【eオークション】♪♪♪♪♪♪
        今月中に無料買い手登録をすると……
    ヒルトン東京、横浜ベイシェラトン、ホテルオークラなど
   高級ホテルの宿泊券がドドーンとあたる!http://www.eac.ne.jp
●ホテルのスイートルームをなんと15,000円(2人分)からオークション中!●

えんどうです。

> とPoint3dを生成して、LineArrayに設定すると、
> 回転移動系は反映されません。
> どのようにLineArrayの終点を作成すれば良いのでしょうか?

まだ全体を把握していない^^;ので直接の答えではない恐れが濃厚ですが、
一度原点に戻してから回転を乗算する必要があるのかも知れません。

えんどうが com.sun.j3d.utils.behaviors.keyboard.KeyNavigator の
ソースを読んででっちあげた^^;サンプルではこんなことをやっています。

http://www.javaopen.org/j3dbook/examples/CollisionTest/SimpleKeyBehavior.java

> public class SimpleKeyBehavior extends Behavior {
>   private static final double ANGLE = Math.PI / 180.0;
>   private static final double STEP = 0.1;
>   private Transform3D t3d = new Transform3D();
>   private Transform3D ct3d = new Transform3D();
>   private Matrix4d matrix = new Matrix4d();
>   private TransformGroup trans = null;
      :
>           case KeyEvent.VK_RIGHT:
>             //System.out.println("VK_RIGHT");//DEBUG
>             t3d.rotY(-ANGLE);
>             trans.getTransform(ct3d);
>             ct3d.get(matrix);
>             ct3d.setTranslation(new Vector3d(0.0, 0.0, 0.0));
>             ct3d.mul(t3d);
>             ct3d.setTranslation(new Vector3d(matrix.m03, matrix.m13, matrix.m23));
>             trans.setTransform(ct3d);
>             break;

---
ENDO Yasuyuki <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/index.html (Japanese Only)