IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

3D Java Discussion :

Rotation en Java3D


Sujet :

3D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 35
    Par défaut Rotation en Java3D
    bonjour à tous

    j'ai recupé une ptite appli pour faire un cube en 3D, le ptit probleme c qu'il tourne autour de l'axe Y et je ne vois pas pk , et comment lui dire de tourner autour de l'axe de Z

    voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    import java.awt.Component;
    import javax.swing.JApplet;
    import javax.swing.JComponent;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.vecmath.*;
    import javax.media.j3d.*;
    import com.sun.j3d.utils.geometry.ColorCube;
    import com.sun.j3d.utils.geometry.Sphere;
    import com.sun.j3d.utils.universe.SimpleUniverse;
     
     
    public class Cube3 extends JPanel{
     
           private static final double DEG_TO_RAD = 0.017453292;
     
       public static void Cube3(){
     
           //Creation Univers utilise par defaut un viewer existant
          SimpleUniverse univers = new SimpleUniverse();
     
          //Definition systeme de coordonnees et point de vue
          univers.getViewingPlatform().setNominalViewingTransform();
     
          //Creation de la scene 3d
          BranchGroup scene = createSceneGraph();
     
          univers.addBranchGraph(scene);
     
        }
     
        public static BranchGroup createSceneGraph(){
     
            //creation de la branche
            BranchGroup objRoot=new BranchGroup();
            //creation du cube
            ColorCube cube = new ColorCube(0.3);
     
     
     
           // ----------- PREMIERE TRANSFORMATION --------- 
     
          //on cree le groupe de transfomation pour rotation dynamique
          TransformGroup objrotate1= new TransformGroup();
     
          //on autorise la transformationde l'objet rotation dynamique
          objrotate1.setCapability   (TransformGroup.ALLOW_TRANSFORM_WRITE);
          
       //on defini l'animation de l'objet :
          Alpha rotAlpha = new Alpha(-1,4000); 
     
       //Rotation
         RotationInterpolator rotInt = new RotationInterpolator   (rotAlpha,objrotate1); 
     
        BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0),2.0);
     
    rotInt.setSchedulingBounds(bounds);
     
    //------------ FIN PREMIERE TRANSFORMATON -----------
     
    objrotate1.addChild(rotInt);
    objrotate1.addChild(cube);
    //objrotate1.addChild(objrotate2);
     
    objRoot.addChild(objrotate1);
     
    //------- couleur de fond-----------
    Background back = new Background(1.0f,1.0f,1.0f);
    back.setApplicationBounds(new BoundingSphere());
    objRoot.addChild(back);
     
    return(objRoot);
    }
     
     
    public static void ferme(){
     
    SimpleUniverse univers = new SimpleUniverse();
    univers.cleanup(); 
     
    }
     
    
    merci

  2. #2
    Membre expérimenté Avatar de dazz_x
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 269
    Par défaut
    la rotation autour de l'axe Y se fait par défaut... Pour effectuer une rotation autour de l'axe Z, il faut ajouter une transformation. par exemple :
    Transform3D rotationZAxis = new Transform3D ();
    rotationZAxis.rotZ(-Math.PI / 6);
    TransformGroup objrotate1 = new TransformGroup (rotationZAxis);

    pour le dynamique, comme la rotation est passée en référence, je
    pense qu'il suffit d'empiler les rotations... (not testé ! and
    not sûr à 100%)

Discussions similaires

  1. [Java3D] Approximation lors de rotations
    Par eternalcm dans le forum 3D
    Réponses: 1
    Dernier message: 25/05/2009, 19h56
  2. Rotation de la camera en java3D
    Par cereal dans le forum 3D
    Réponses: 2
    Dernier message: 04/12/2008, 16h38
  3. [Java3D]Centre de rotation
    Par ancrou dans le forum 3D
    Réponses: 1
    Dernier message: 05/02/2008, 15h43
  4. Rotation + java3D
    Par cysboy dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 10/01/2008, 20h35
  5. Réponses: 9
    Dernier message: 30/08/2005, 20h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo