import com.sun.j3d.utils.universe.SimpleUniverse; import com.sun.j3d.utils.geometry.*; import javax.media.j3d.*; import javax.swing.JFrame; import java.awt.*; public class Cono3D extends JFrame { private Transform3D rotate1 = new Transform3D(); private Transform3D rotate2 = new Transform3D(); public Cono3D() { super("Static3DWorld"); setBackground(Color.white); setForeground(Color.blue); Canvas3D canvas3D = createCanvas3D(); BranchGroup scene = createSceneGraph(); connect(canvas3D, scene); } private Canvas3D createCanvas3D() { setSize(600, 600); getContentPane().setLayout(new BorderLayout()); GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas3D = new Canvas3D(config); getContentPane().add(canvas3D); return canvas3D; } private BranchGroup createSceneGraph() { Appearance Apariencia = new Appearance(); ColoringAttributes CA = new ColoringAttributes(); CA.setColor((float)0.5,(float)0.5,(float)0.5); //Apariencia.setLineAttributes(new LineAttributes()); //Apariencia.setMaterial(new Material()); Apariencia.setColoringAttributes(CA); Cone Cono = new Cone((float)0.5, (float)1.0, Apariencia); Sphere Esfera = new Sphere((float)0.5, 1, 20, Apariencia); BranchGroup objRoot = new BranchGroup(); TransformGroup rotator = new TransformGroup(rotateCono()); objRoot.addChild(rotator); rotator.addChild(Esfera); rotator.addChild(Cono); rotator.addChild(new ColorCube(0.3)); objRoot.compile(); return objRoot; } private Transform3D rotateCono() { rotate1.rotX(Math.PI / 4.0d); rotate2.rotY(Math.PI / 4.0d); rotate1.mul(rotate2); return rotate1; } private void connect(Canvas3D canvas3D, BranchGroup scene) { SimpleUniverse simpleU = new SimpleUniverse(canvas3D); simpleU.getViewingPlatform().setNominalViewingTransform(); simpleU.addBranchGraph(scene); } public static void main(String[] args) { new Cono3D().setVisible(true); } }