Este  es el cubo que publique hace poco, pero mejorado.
nombre:HelloJava3Dd.java
........................................................................................................
/**
 *
 * @author alex4024
 */
import java.applet.Applet; 
import java.awt.BorderLayout; 
import java.awt.Frame; 
import java.awt.event.*; 
import com.sun.j3d.utils.applet.MainFrame; 
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.ColorCube; 
import java.awt.GraphicsConfiguration;
import javax.media.j3d.*;
import javax.vecmath.*;
public class HelloJava3Dd extends Applet { 
 public HelloJava3Dd(){
  setLayout(new BorderLayout()); 
  GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); 
  Canvas3D lienzo3D =new Canvas3D(config); 
  add("Center", lienzo3D);
  BranchGroup escena=createSceneGraph(); 
  escena.compile(); 
  SimpleUniverse simpleU =new SimpleUniverse(lienzo3D); 
  simpleU.getViewingPlatform().setNominalViewingTransform(); 
  simpleU.addBranchGraph(escena); 
 }
 public BranchGroup createSceneGraph(){ 
  BranchGroup objRaiz =new BranchGroup(); 
  Transform3D rotar =new Transform3D(); 
                Transform3D tempRotar =new Transform3D();
  rotar.rotX(Math.PI/4.0d); 
                tempRotar.rotY(Math.PI/5.0d);
                rotar.mul(tempRotar);
  TransformGroup objRotar =new TransformGroup(rotar); 
                TransformGroup objVuelta = new TransformGroup();
                objVuelta.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
                objRaiz.addChild(objRotar);
                objRotar.addChild(objVuelta);
                objVuelta.addChild(new ColorCube(0.4));
                Transform3D EjeY = new Transform3D();
                Alpha rotacionAlpha = new Alpha(-1,4000);
                RotationInterpolator rotador = new RotationInterpolator(rotacionAlpha, objVuelta, EjeY, 0.0f, (float)Math.PI*2.0f);
                BoundingSphere bounds = new BoundingSphere();
                rotador.setSchedulingBounds(bounds);
                objVuelta.addChild(rotador);
                return objRaiz;
 }
 public static void main(String [] args){ 
  Frame frame =new MainFrame(new HelloJava3Dd(),256,256); 
 }
}
........................................................................................................
Mejoras: Gira automáticamente entre los ejes X & Y
Alpha rotacionAlpha = new Alpha(-1,4000); en esta linea declaramos la velocidad de rotación., aclarese que 4000 es igual a 4 segundos, y -1 lo que hace es que el cubo gire infinitamente; (si este valor se cambia por 2, el cubo gira dos vez, así sucesivamente con valores positivos)...
.

 
Excelente código pero no puedo hacer que corra, Saludos
ResponderEliminarmmmm.... ya instalastes las librerías java 3d api?
Eliminareste es el link de oracle para descargarlas:
http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138252.html
vientos chavo!!!
ResponderEliminareres una gaver
sigue asi monigote