Utilisateur:Gene.arboit/bac à sable

Une page de Wikiversité.
Sauter à la navigation Sauter à la recherche

Java3D[modifier | modifier le wikicode]

Le nom du fichier Java contenant le code d'une des sous-sections suivantes doit être mon_premier_prog_Java3D.java.

Ouvrir une fenêtre[modifier | modifier le wikicode]

import java.applet.Applet; import java.awt.Frame; import com.sun.j3d.utils.applet.MainFrame;


public class mon_premier_prog_Java3D extends Applet {


   public static void main(String[] args) {
       Frame frame = new MainFrame(new mon_premier_prog_Java3D(), 256, 256);
   }

}


Initialiser la fenêtre[modifier | modifier le wikicode]

import java.applet.Applet; import java.awt.BorderLayout; import java.awt.Frame; import java.awt.GraphicsConfiguration; import javax.media.j3d.BranchGroup; import javax.media.j3d.Canvas3D; import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.universe.SimpleUniverse;


public class mon_premier_prog_Java3D extends Applet {

   public mon_premier_prog_Java3D() { // Constructeur
       setLayout(new BorderLayout());        
       GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
       Canvas3D canvas3D = new Canvas3D(config);
       add("Center", canvas3D);
       SimpleUniverse simpleU = new SimpleUniverse(canvas3D); 
       simpleU.getViewingPlatform().setNominalViewingTransform(); // plan de projection en arriere de l'origine
   } 


   public static void main(String[] args) {
       Frame frame = new MainFrame(new mon_premier_prog_Java3D(), 256, 256);
   }

}

Créer un graphe de scène vide[modifier | modifier le wikicode]

import java.applet.Applet; import java.awt.BorderLayout; import java.awt.Frame; import java.awt.GraphicsConfiguration; import javax.media.j3d.BranchGroup; import javax.media.j3d.Canvas3D; import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.universe.SimpleUniverse;


public class mon_premier_prog_Java3D extends Applet {

   public BranchGroup createSceneGraph() {
   	BranchGroup objRoot = new BranchGroup();
   	objRoot.compile();
   	return objRoot;
   }


   public mon_premier_prog_Java3D() { // Constructeur
       setLayout(new BorderLayout());        
       GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
       Canvas3D canvas3D = new Canvas3D(config);
       add("Center", canvas3D);
       SimpleUniverse simpleU = new SimpleUniverse(canvas3D); 
       simpleU.getViewingPlatform().setNominalViewingTransform(); // plan de projection en arriere de l'origine
       // Créer le graphe de scène
       BranchGroup scene = createSceneGraph();
       simpleU.addBranchGraph(scene);
   } 


   public static void main(String[] args) {
       Frame frame = new MainFrame(new mon_premier_prog_Java3D(), 256, 256);
   }

}

Ajouter un cube au graphe de scène[modifier | modifier le wikicode]

import java.applet.Applet; import java.awt.BorderLayout; import java.awt.Frame; import java.awt.GraphicsConfiguration; import javax.media.j3d.BranchGroup; import javax.media.j3d.Canvas3D; import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.universe.SimpleUniverse;


public class mon_premier_prog_Java3D extends Applet {

   public BranchGroup createSceneGraph() {
   	BranchGroup objRoot = new BranchGroup();
   	objRoot.addChild(new ColorCube(0.4));
   	objRoot.compile();
   	return objRoot;
   }


   public mon_premier_prog_Java3D() { // Constructeur
       setLayout(new BorderLayout());        
       GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
       Canvas3D canvas3D = new Canvas3D(config);
       add("Center", canvas3D);
       SimpleUniverse simpleU = new SimpleUniverse(canvas3D); 
       simpleU.getViewingPlatform().setNominalViewingTransform(); // plan de projection en arriere de l'origine
       // Créer le graphe de scène
       BranchGroup scene = createSceneGraph();
       simpleU.addBranchGraph(scene);
   } 


   public static void main(String[] args) {
       Frame frame = new MainFrame(new mon_premier_prog_Java3D(), 256, 256);
   }

}

Ajouter une rotation au cube[modifier | modifier le wikicode]

import java.applet.Applet; import java.awt.BorderLayout; import java.awt.Frame; import java.awt.GraphicsConfiguration; import javax.media.j3d.BranchGroup; import javax.media.j3d.Canvas3D; import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.universe.SimpleUniverse;


public class mon_premier_prog_Java3D extends Applet {

   public BranchGroup createSceneGraph() {
   	BranchGroup objRoot = new BranchGroup();
       //Préparer la rotation (spin)
       TransformGroup objSpin = new TransformGroup();
       objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
       objRoot.addChild(objSpin);
       // Ajouter le cube...
       objSpin.addChild(new ColorCube(0.4)); // Changé objRoot pour objSpin
       // La rotation
       Alpha rotationAlpha = new Alpha(-1, 4000);
       RotationInterpolator rotator =
           new RotationInterpolator(rotationAlpha, objSpin);
       BoundingSphere bounds =
           new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
       rotator.setSchedulingBounds(bounds);
       objSpin.addChild(rotator);        
       //Finir
       objRoot.compile();
       return objRoot;
   }


   public mon_premier_prog_Java3D() { // Constructeur
       setLayout(new BorderLayout());        
       GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
       Canvas3D canvas3D = new Canvas3D(config);
       add("Center", canvas3D);
       SimpleUniverse simpleU = new SimpleUniverse(canvas3D); 
       simpleU.getViewingPlatform().setNominalViewingTransform(); // plan de projection en arriere de l'origine
       // Créer le graphe de scène
       BranchGroup scene = createSceneGraph();
       simpleU.addBranchGraph(scene);
   } 


   public static void main(String[] args) {
       Frame frame = new MainFrame(new mon_premier_prog_Java3D(), 256, 256);
   }

}

Ajouter une rotation plus intéressante au cube[modifier | modifier le wikicode]

import java.applet.Applet; import java.awt.BorderLayout; import java.awt.Frame; import java.awt.GraphicsConfiguration; import javax.media.j3d.BranchGroup; import javax.media.j3d.Canvas3D; import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.universe.SimpleUniverse;


public class mon_premier_prog_Java3D extends Applet {

   public BranchGroup createSceneGraph() {
   	BranchGroup objRoot = new BranchGroup();
       //Préparer la rotation (spin)
       TransformGroup objSpin = new TransformGroup();
       objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
       objRoot.addChild(objSpin);
       // Ajouter le cube...
       objSpin.addChild(new ColorCube(0.4)); // Changé objRoot pour objSpin
       // La rotation
       Alpha rotationAlpha = new Alpha(-1, 4000);
       // Transformation de l'axe de rotation
       Transform3D zAxis = new Transform3D();
       zAxis.rotZ((float)Math.PI/- 2.5f);  // NB : Remplacer 2.5 par 2.0 pour l'axe des z 'sans rotation'
       
       RotationInterpolator rotator =
           new RotationInterpolator(rotationAlpha, objSpin, zAxis,
                                    0.0f, (float) Math.PI*2.0f);
       BoundingSphere bounds =
           new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
       rotator.setSchedulingBounds(bounds);
       objSpin.addChild(rotator);        
       //Finir
       objRoot.compile();
       return objRoot;
   }


   public mon_premier_prog_Java3D() { // Constructeur
       setLayout(new BorderLayout());        
       GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
       Canvas3D canvas3D = new Canvas3D(config);
       add("Center", canvas3D);
       SimpleUniverse simpleU = new SimpleUniverse(canvas3D); 
       simpleU.getViewingPlatform().setNominalViewingTransform(); // plan de projection en arriere de l'origine
       // Créer le graphe de scène
       BranchGroup scene = createSceneGraph();
       simpleU.addBranchGraph(scene);
   } 


   public static void main(String[] args) {
       Frame frame = new MainFrame(new mon_premier_prog_Java3D(), 256, 256);
   }

}