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

[Java3Djp:00519] Re: [Q]Transfom3Dの順番



    / 免疫機能研究会の3月のお知らせ                             /
   /   ■ アガリクス活性化多糖体による免疫療法体験談 8編   /
  /   ■ 「免疫機能研究」ニューズレター       7編   /
 /             --------------------------                      /
/ こちらで掲載中です。--->> http://www.meneki.com/           /
--------------------------------------------------------------

>t1.mul(t2);//t1*t2;
>t1.mul(t3);//t1*t2*t3;
>t1.addChild(visualObject);
>myTransformGroup.addChild(t1);

TransformGroup は下記のように javax.media.j3d.Node のサブクラスなので
addChild() できますが、

java.lang.Object
  |
  +--javax.media.j3d.SceneGraphObject
        |
        +--javax.media.j3d.Node
              |
              +--javax.media.j3d.Group
                    |
                    +--javax.media.j3d.TransformGroup

Transform3D は下記のように javax.media.j3d.Node のサブクラスではないので
addChild() 出来ません。

java.lang.Object
  |
  +--javax.media.j3d.Transform3D

この場合、myTrasformGroup に visualObject を addChild() することに
なると思います。

Transform3D ですが、myTransformGroup に setTransform(Transform3D) する
ことになります。

>1 Transform3D myTransform3D = new Transform3D();
>2 myTransform3D.setTranslation(new Vector3f(-1.0f,0.0f,-4.0f));
>3 myTransform3D.setScale(0.1);
>4 Transform3D tempTrans = new Transform3D();
>5 tempTrans.rotY(Math.PI/4.0);
>6 myTransform3D.mul(tempTrans);
>7 TransformGroup myTransformGroup = new TransformGroup(myTransform3D);
>8 myTransformGroup.addChild(visualObject);
>
>では、visualObjectに
>1番目:Y軸周りの回転(5で定義)
>2番目:0.1のスケール(3で定義)
>3番目:平行移動(2で定義)
>という順番で作用される???という理解でよいのでしょうか?

やってみていないので確証はありませんが、

TransformGroup myTransformGroup = new TransformGroup();
myTransformGroup.addChild(visualObject);

Transform3D t1 = new Transform3D();
t1.set(new Vector3d(-1.0, 0.0, -4.0));

Transform3D t2 = new Transform3D();
t2.setScale(0.1);
t1.mul(t2);

Transform3D t3 = new Transform3D();
t3.rotY(Math.PI/4.0);
t1.mul(t3);

myTransformGroup.setTransform(t1);

こんな感じでしょうか。

私も Transform3D の lookAt() メソッドで悩んでます。
これからいろいろ実験しようと思っています。
-- 
えんどう やすゆき <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/ (Java互助会ホームページ)