Programmation 3D

Programmation 3D - Java - Programmation

Marsh Posté le 23-05-2008 à 15:43:41    

Bonjour à  tous
 
 j'ai un mini projet qui consiste à développer une application faisant des figures 3D (cube cylindre pyramide et cône )
 
Je le fait en Java en créant l'interface graphique de l'application sur une frame et j'ai mis le code qui permet de créer la scéne 3D dans une classe (voir le code ci dessous)
j'ai apapelé la classe de la scène pour le tracé dans un jbouton comme suit
 
public void jButton4_actionPerformed(ActionEvent e) {
        Frame Frame2 = new MainFrame(new Box3D(), 900, 650);      
    }
 
En executant ça marche mais mon probleme est que la scéne est affichée dans une autre Frame qu'il crée ; alors que  moi je veux que la scène soit affichée dans le Frame (l'interface) de mon application.
Pouvez vous me dire comment faire de telle sorte que la scène soit affichée sur l'interface de mon application au lieu sur une  autre fenetre (frame)
 
Merci d'avance de votre aide
 
code de la scène :
 
package pac;
 
/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2008</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
 
// Etape 1 :
// Importation des packages Java 2
import java.applet.Applet;
import java.awt.*;
 
// Etape 2 :
// Importation des packages Java 3D
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
 
public class Box3D extends Applet {
 
  public Box3D() {
    this.setLayout(new BorderLayout());
 
    // Etape 3 :
    // Creation du Canvas 3D
    Canvas3D canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
    this.add(canvas3D, BorderLayout.CENTER);
 
    // Etape 4 :
    // Creation d'un objet SimpleUniverse
    SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
 
    // Etape 5 :
    // Positionnement du point d'observation pour avoir une vue correcte de la
    // scene 3D
    simpleU.getViewingPlatform().setNominalViewingTransform();
 
    // Etape 6 :
    // Creation de la scene 3D qui contient tous les objets 3D que l'on veut visualiser
    BranchGroup scene = createSceneGraph();
 
    // Etape 7 :
    // Compilation de la scene 3D
    scene.compile();
 
    // Etape 8:
    // Attachement de la scene 3D a l'objet SimpleUniverse
    simpleU.addBranchGraph(scene);
  }
 
  /**
   * Creation de la scene 3D qui contient tous les objets 3D
   * @return scene 3D
   */
  public BranchGroup createSceneGraph() {
    // Creation de l'objet parent qui contiendra tous les autres objets 3D
    BranchGroup parent = new BranchGroup();
 
    /************ Partie de code concernant l'animation du cube *************/
    /* Elle sera expliquee en details dans les chapitres relatifs aux
       transformations geometriques et aux animations */
    TransformGroup objSpin = new TransformGroup();
    objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
    Alpha rotationAlpha = new Alpha(-1, 4000);
    RotationInterpolator rotator =
    new RotationInterpolator(rotationAlpha, objSpin);
    BoundingSphere bounds = new BoundingSphere();
    rotator.setSchedulingBounds(bounds);
    objSpin.addChild(rotator);
    /*************** Fin de la partie relative a l'animation ***************/
 
    // Arriere plan en blanc
    Background background = new Background(1, 1, 1);
    background.setApplicationBounds(new BoundingBox());
    parent.addChild(background);
 
     // Construction du parallelepipede
    objSpin.addChild(new Box(0.5f, 0.5f, 0.5f, null));
    parent.addChild(objSpin);
 
    return parent;
  }
 
  /**
   * Etape 9 :
   * Methode main() nous permettant d'utiliser cette classe comme une applet
   * ou une application.
   * @param args
   */
  public static void main(String[] args) {
    Frame Frame2 = new MainFrame(new Box3D(), 900, 650);
  }
}

Reply

Marsh Posté le 23-05-2008 à 15:43:41   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed