移動と回転


前項参照より、座標変換の順番はスタック方式である。
なので、移動と回転を同時に行う際は注意が必要。




Transform3D rotX = new Transform3D();
Transform3D trans = new Transform3D();

rotX.rotX(Math.PI/6);
trans.setTransform(new Vector3D(1.0d,0,0));

rotX.mul(trans);

TransformGroup transG = new TransformGroup(rotX);

とすると、座標移動を行ってから回転するから、素直にX方向に動いてくれない。
(というか、動いてから回転する。)
なので回転と移動を別にしたい場合は

trans.mul(rotX);

TransformGroup transG = new TransformGroup(trans);

とするべき。
Top
inserted by FC2 system