begin process at 2010 02 09 22:48:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Java2D et java3D

 > 

Votre ami est en detresse : Java3D et Timer


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Votre ami est en detresse : Java3D et Timer

jeudi 19 mai 2005 à 18:08:56 | Votre ami est en detresse : Java3D et Timer

sofien007

Salut pour tout le monde
Je voudrais effectuer une animation qui consiste en l'apparition d'objets(exemple sphere) dans des positions en fonction du nombre de ces objets.
Voila mon code mais il me montre l'exception RestrictedAccessException

public class NewJFrame extends javax.swing.JFrame {
    GraphicsConfiguration config;
    Canvas3D canvas;
    Canvas3D canvas1;   
    SimpleUniverse universe;
    SimpleUniverse universe1;
    Appearance ap;
    BranchGroup scene;
    Scenario scenario;
    int delais=1000;
    ActionListener tache_timer;
    int seconde=0;
    Timer timer1;
    BranchGroup scene1=new BranchGroup();
    TransformGroup transGrp=null;
     Transform3D t3d=null;
    int incr=0;
    float x=-0.65f;//-0.5;
    float y=0.33f;
    BoundingSphere bounds = new BoundingSphere(new Point3d(0f,0f,0f),100.0);
    /** Creates new form NewJFrame */
    public NewJFrame() {
        initComponents();
        config =SimpleUniverse.getPreferredConfiguration();
        canvas= new Canvas3D(config);
        canvas1= new Canvas3D(config);
        universe = new SimpleUniverse(canvas);
        pnlSyn3D.add("Center",canvas );
        scene = createSceneGraph();
       
        tache_timer= new ActionListener()
        {
             public void actionPerformed(ActionEvent e1)
             {
                 seconde++;
                 //canvas.repaint();
                
                
                 if(seconde==2)
                 {
                     Vector3f vec=new Vector3f(x,y,0);
                     t3d=new Transform3D();
                     t3d.setTranslation( vec );
                     transGrp = new TransformGroup( t3d );
                     Sphere sphere=new Sphere(0.28f,1,40,ap);
                     transGrp.addChild(sphere);
                     scene.addChild(transGrp);
                     transGrp.setCapability(TransformGroup.ENABLE_PICK_REPORTING);
                     transGrp.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
                     transGrp.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
                     PickRotateBehavior behavior1 = new PickRotateBehavior(scene, canvas, bounds);
                     behavior1.setSchedulingBounds(bounds);
                     transGrp.addChild(behavior1);
                     PickZoomBehavior behavior2 = new PickZoomBehavior(scene, canvas, bounds);
                     behavior2.setSchedulingBounds(bounds);
                     transGrp.addChild(behavior2);
                     PickTranslateBehavior behavior3 = new PickTranslateBehavior(scene, canvas, bounds);
                     transGrp.addChild(behavior3);
                     x+=0.65f;
                     incr++;
                     if(incr==3)
                     {
                         x=-0.65f;
                         y+=-0.66f;
                     }
                     //pnlSyn3D.updateUI();
                     System.out.println("Le temp de Tmes");
                     seconde+=57;
                     universe.getViewingPlatform().setNominalViewingTransform();
                 }
                 universe.addBranchGraph( scene);
                 if(seconde==60)
                 {
                     seconde=0;
                 }
                
                 if(incr==6)
                 {        
                    
                     //universe.getViewingPlatform().setNominalViewingTransform();
                     //scene.compile();
                     timer1.stop();
                     System.out.println("Timer stopped");
                 }
                 System.out.println(Integer.toString(seconde));/* rafraichir le label */
             }
         };
         timer1= new Timer(delais,tache_timer);
        //scene = new BranchGroup( );
    }
   
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    private void initComponents() {                         
        pnlSyn3D = new javax.swing.JPanel();
        jButton2 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowOpened(java.awt.event.WindowEvent evt) {
                formWindowOpened(evt);
            }
        });

        pnlSyn3D.setLayout(new java.awt.BorderLayout());

        jButton2.setText("Construire");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        pnlSyn3D.add(jButton2, java.awt.BorderLayout.SOUTH);

        getContentPane().add(pnlSyn3D, java.awt.BorderLayout.CENTER);

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-640)/2, (screenSize.height-490)/2, 640, 490);
    }                       

    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                 
        Dimension screenSize =Toolkit.getDefaultToolkit().getScreenSize();
        if((screenSize.getWidth()==1280)&&(screenSize.getHeight()==1024))
            this.setSize(640,490);
        else
            if((screenSize.getWidth()==1280)&&(screenSize.getHeight()==1024))
                this.setSize(512,348);
       
    }                                

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        timer1.start();
    }                                       
    void preparerScene2()
    {
        //scene = createSceneGraph();
        /*canvas.repaint();
        universe.cleanup();*/
        /*float x=-0.65f;//-0.5;
        float y=0.33f;
        for ( int j = 0; j <6; j++ )
        {
            Vector3f vec=new Vector3f(x,y,0);
            Transform3D t3d=new Transform3D();
            t3d.setTranslation( vec );
            transGrp = new TransformGroup( t3d );
            scene.addChild(transGrp);
            transGrp.setCapability(TransformGroup.ENABLE_PICK_REPORTING);
            transGrp.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
            transGrp.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
            cylindre=new Cylinder(0.4f,0.8f,1,ap);
            sphere=new Sphere(0.28f,1,40,ap);
            transGrp.addChild(sphere);
            System.out.println("Nombre de sommets "+sphere.getNumVertices());
            System.out.println("Nombre de triangles "+sphere.getNumTriangles());
            t3d.rotZ(0);
            x+=0.65f;
            if(j==2)
            {
                x=-0.65f;
                y+=-0.66f;
            }
        }*/
        //pnlSyn3D.updateUI();
        ///universe = new SimpleUniverse(this.canvas);
        /************** Fin Construction de l'objet désiré *************/
        //universe.getViewingPlatform().setNominalViewingTransform();
        /* when compiling a branch we optimize it for faster rendering */
        ///scene.compile();
        /* add the branch graph to the universe */
        //universe.addBranchGraph( scene );
    }
    Dimension getpnlSyn3D_Dim()
    {
        Dimension dim=new Dimension();
        float pnlSyn3D_Width=(float)this.getSize().getWidth();
        float pnlSyn3D_Height=(float)this.getSize().getHeight();
        System.out.println("La largeur de l'espace de simulation est : "+pnlSyn3D_Width);
        System.out.println("La hauteur de l'espace de simulation est : "+pnlSyn3D_Height);
        dim.setSize(pnlSyn3D_Width, pnlSyn3D_Height);
        return(dim);
    }
    BranchGroup createSceneGraph()
    {
        BranchGroup scene=new BranchGroup();
        //creation de l'apparence
        ap=createAppearance();
        BoundingSphere bounds = new BoundingSphere(new Point3d(0f,0f,0f),100.0);
        //Transform3D t3d=new Transform3D();
        Color3f dir_Lg1_Color = new Color3f(5f, 1f, 4f);
        Vector3f d_dir_Lg1  = new Vector3f(3f, 5f, 0.9f);
        Color3f amb_Lg1_Color = new Color3f(2f, 1f, 2f);
        AmbientLight amb_Lg1 = new AmbientLight(amb_Lg1_Color);
        DirectionalLight dir_Lg1 = new DirectionalLight(dir_Lg1_Color, d_dir_Lg1);
        Material mat =new Material();
        amb_Lg1.setInfluencingBounds(bounds);
        dir_Lg1.setInfluencingBounds(bounds);
        ap=createAppearance();
        scene.addChild(dir_Lg1);
        scene.addChild(amb_Lg1);
        return(scene);
    }
    Appearance createAppearance()
    {
        Material mat =new Material();
        ColoringAttributes colorAtt=new ColoringAttributes();
        //Le modele d'ombrage sera recperé de la variable globale "ombrage"
        colorAtt.setShadeModel(ColoringAttributes.SHADE_GOURAUD);
        mat.setCapability(Material.ALLOW_COMPONENT_WRITE);
        /* Definir les attributs RGB de la couleur de diffusion
         * floatValue() car les valeurs seront prisent dans des
         * zones de textes dans le futur */
        float r= new Float("4").floatValue();
        float v= new Float("0.4").floatValue();
        float b= new Float("0.4").floatValue();
        mat.setDiffuseColor(r,v,b);   
        mat.setEmissiveColor(r,v,b);
        ap=new Appearance();
        ap.setMaterial(mat);
        ap.setColoringAttributes(colorAtt);
        return(ap);
    }
    String path()
    {
        String file=new File("").getAbsolutePath()+"\\";
        //String chemin=file.substring(0,file.indexOf("Simulateur3D"))+"Simulateur3D\\";
        return(file);
    }
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }
   
    // Variables declaration - do not modify                    
    private javax.swing.JButton jButton2;
    private javax.swing.JPanel pnlSyn3D;
    // End of variables declaration                  
   
}
Y'a t'il quelqu'un qui peut m'aider svp c'est urgent.

jeudi 19 mai 2005 à 18:10:33 | Votre ami est en detresse : Java3D et Timer

sofien007

En plus, j'ai pas connu comment montrer les spheres une a une lorsqu'elle sont ajoutées au scene


Cette discussion est classée dans : java, scene, float, transgrp, pnlsyn3d


Répondre à ce message

Sujets en rapport avec ce message

C++ -> Java [ par christouilhe ] Bonjour à vous tous.J'ai une question à vous poser ...Il se trouve que je dois retranscrire un programme C++ en Java, mais je ne sais pas du tout comm Can't convert float to java.lang.Float [ par jmg02001 ] bonjour, sauriez vous pourquoi ce code me donne cette erreur et comment faire String[] coordonnee = request.getParameter("xy").split(",");java.lang.Fl Pb de transtypage(Java.lang.ClassCastException) [ par lamaritta289 ] bonjour, je travaille sur un vector de comptes bancaire(num, nom client, credit, solde(), virement(),,,,) j'ai ecrit le code suivant private void jB recupérer des float d'une JTextField [ par Nina2507 ] bsr;je travaille sur un projet qui consiste à implementer la méthode du simplex sous java.à une etape je dois récupérer des données de type float d'un Implementation d'une classe java [ par nguets ] Bonsoir je m'appel Romaric Abel je suis entraint d'implémenter une classe java qui dans 1 application de gestion des notes ds 1 Ets supérieur doit me utiltisation de Float.parseFloat [ par mariam1987 ] salut a tous,j'ai ecrit ce code mais il ne marche pas et je ne sais pas ou est l'erreur: import java.lang.Float.*; public class myfloat{    public s [urgent]passage de variable entre les class [ par developvbdebut ] Bonjour tout le mondeVoici la class Calculimport javax.swing.*;import java.awt.*;import java.awt.event.*; public class Calcul{< Erreur de compilation Java "cannot find symbol" sous ubuntu 9.04 [ par mickeynad ] Bonjour à tous, J'en appelle à votre aide. J'ai fait un petit logiciel en java de gestion des pièces automobiles qui est constitué de 6 classes (héri indexation d'une image par point d'interet [ par mm1511 ] bonsoir j'ai un programme qui compare les image par région et il m'indique toujours cette erreur: Error: Could not find mediaLib accelerator wrapper c developpement d'application de SMS JAVA sur teléphone portable [ par almensour ] Je suis sur un projet de developpement d'application Java sur portable pour envoyer et recevoir de SMS, comme dans le cas d'une société ou d'une banqu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales