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