Rotacion en Java3D

hgouveia
27 de Febrero del 2008
que tal amigos, tengo un tiempito aprendiendo sobre java3d, y he logrado ya por lo menos poner algunos objetos, moverlos y rotarlo, pero tengo un gran problema con la rotacion y creo que tambien se debe que no soy muy diestro en las matematicas,

mi problema es que, yo quiero mover un objeto, digamos un cubo , que vaya rotando sobre su mismo eje, mientras se mueve , la idea es mas bien hacer algo como un "asteroid" que vayan rotando en si mismo, mientras se van moviendo hacia un lado, si alguien pudiera decirme como hago, un buen ejemplo me gustaria, por que yo roto el objeto, y el va moviendose para donde rota, quisiera mas bien que rotara sin importar para que lado se va mover, espero que me entiendan :$

hgouveia
27 de Febrero del 2008
ok, depues de tantan y tantas prueba, ya tenia diass en esto, por fin supe como hacerlo, hay que hacer dos TransformGroup , para los que esten mantandose como yo, le dejo parte del codigo

BranchGroup modelObj=new BranchGroup();
TransformGroup trasnformModel=new TransformGroup();
TransformGroup rotateModel=new TrasnformGroup();

rotateModel.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
rotateModel.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
rotateModel.addChild(obj);

transformModel.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
transformModel.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
transformModel.addChild(rotateModel);

modelObj.addChild(transformModel);

//Mueve el Objeto, y Rota el objeto cambiando su sistema de coordenadas
Transform3D t3d= new Transform3D();
Transform3D t3dRot= new Transform3D();
Transform3D t3dMov= new Transform3D();

//Movimiento
t3dMov.setTranslation(new Vector3d(0.0f,0.0f,1.0f));
t3d.mul(t3dMov);
transformModel.setTransform(t3d);
//Rotacion cambiando su sistema de coordenadas
t3dRot.rotX(x);
t3d.mul(t3dRot);
transformModel.setTransform(t3d);
//Rota el Objeto, sobre su mismo eje, sin modificar su sistema de coordenadas
Transform3D t3d2= new Transform3D();
Transform3D t3dRot2= new Transform3D();

//Rota el objeto
t3dRot2.rotZ(z);
t3d2.mul(t3dRot2);
rotateModel.setTransform(t3d2);

espero que les sirva, es un simple ejemplo de como funciona

hgouveia
27 de Febrero del 2008
sorry me falto esto

ColorCube obj=new ColorCube(0.4);