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 :

[Java3D] Choix axe de rotation + question sur les coordonées


Sujet :

3D Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 48
    Points : 28
    Points
    28
    Par défaut [Java3D] Choix axe de rotation + question sur les coordonées
    Je débute en Java3D,j'arrive à faire tourner un cube sur lui meme mais toujours sur le meme axe.
    Je crois avoir vu quelque part que justement par defaut "RotationInterpolator" prenait en compte l'axe des y ,mais je n'ai absolument rien trouvé pour pouvoir en choisir un autre.


    EDIT du 30/08/05


    Avec ça on peut vraiment intervenir sur le choix de l'axe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    AxisAngle4f faxisOfRot = new AxisAngle4f(1.0f,0.0f,0.0f,(float)Math.PI*2);
    Transform3D faxisT3D = new Transform3D();
    faxisT3D.set(faxisOfRot);
     
    RotationInterpolator rotator = new RotationInterpolator(rotationAlpha,objSpin);
    rotator.setAxisOfRotation(faxisT3D);
    Ce que je comprend pas c'est qu'avec ces coordonnées (1,0,0) + un angle de 2Pi je devrais rester sur l'axe des x non?
    Or avec il me le fait tourner autour des y (j'obtiens la meme chose avec 0Pi).

    L'orde est bien x,y,z normalement non?

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    up

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    D'apres la doc il y a un operateur qui permet de definir l axe :
    RotationInterpolator

    Ca donnerai qqchose du genre pour une rotation autour de x :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    double rotationMatrix[] = {{1,0,0,0},{0,cos(alpha),sin(alpha),0},
                                         {0,-sin(alpha),cos(alpha),0},{0,0,0,1}};
    GMatrix gm = new GMatrix(4,4);
    for &#40;int i=0; i<4 ;i++&#41; &#123;
          gm.setColumn&#40;i,rotationMatrix&#40;i&#41;&#41;;
    &#125;
    Transform3D rotation = new Transform3D&#40;gm&#41;;
     
    RotationInterpolator rotator = new RotationInterpolator&#40;rotationAlpha,objSpin&#41;;
    rotator.setAxisOfRotation&#40;gm&#41;;
    Mess with the best, die like the rest!

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    Merki beaukoup je vais tester ça

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    Arf je comprend pas pourquoi j'ai ce message d'erreur:


    setAxisOfRotation(javax.media.j3d.Transform3D) dans javax.media.j3d.RotationInterpolator ne peut etre appliqué à (javax.vecmath.GMatrix)



    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
    double cosinus;
      double i=Math.PI*2;
      cosinus = Math.cos&#40;i*Math.PI/2000&#41;;
     
      double sinus;
        double j=Math.PI*2;
        cosinus = Math.sin&#40;i*Math.PI/2000&#41;;
     
     
     
        double rotationMatrix&#91;&#93;&#91;&#93; = &#123;&#123;1,0,0,0&#125;,&#123;0,i,j,0&#125;,&#123;0,-j,i,0&#125;,&#123;0,0,0,1&#125;&#125;;
        GMatrix gm = new GMatrix&#40;4,4&#41;;
        for &#40;int a=0; a<4 ;a++&#41; &#123;
              gm.setColumn&#40;a,rotationMatrix&#40;a&#41;&#41;;
        &#125;
        Transform3D rotation = new Transform3D&#40;gm&#41;;
     
        RotationInterpolator rotator = new RotationInterpolator&#40;rotationAlpha,objSpin&#41;;
        rotator.setAxisOfRotation&#40;gm&#41;;

  6. #6
    Membre averti
    Inscrit en
    avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    Merki

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    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
    double cos;
     
    double i=Math.PI/3;
      cos = Math.cos&#40;i&#41;;
     
      double sin;
     
        sin = Math.sin&#40;i&#41;;
     
     
     
        double rotationMatrix&#91;&#93;&#91;&#93; = &#123;&#123;1,0,0,0&#125;,&#123;0,-cos,-sin,0&#125;,&#123;0,sin,-cos,0&#125;,&#123;0,0,0,1&#125;&#125;;
        GMatrix g = new GMatrix&#40;4,4&#41;;
        for &#40;int a=0; a<4 ;a++&#41; &#123;
              g.setColumn&#40;a,rotationMatrix&#40;a&#41;&#41;;
        &#125;
        Transform3D rotation = new Transform3D&#40;g&#41;;
     
        RotationInterpolator rotator = new RotationInterpolator&#40;rotationAlpha,objSpin&#41;;
        rotator.setAxisOfRotation&#40;rotation&#41;;
     
     
     
     
    // on définit la zone sur laquelle va s'appliquer la rotation
        BoundingSphere bounds=new BoundingSphere&#40;&#41;;
        rotator.setSchedulingBounds&#40;bounds&#41;;
        objSpin.addChild&#40;rotator&#41;;
     
        objRoot.addChild&#40;objSpin&#41;;
     
    objSpin.addChild&#40;new ColorCube&#40;0.3&#41;&#41;;
     
    universe.getViewingPlatform&#40;&#41;.setNominalViewingTransform&#40;&#41;;
     
    universe.addBranchGraph&#40;objRoot&#41;;

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    août 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 48
    Points : 28
    Points
    28
    Par défaut
    EDIT du 1er post

  10. #10
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    avril 2004
    Messages
    3 748
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : avril 2004
    Messages : 3 748
    Points : 7 310
    Points
    7 310
    Par défaut Re: [Java3D] Choix axe de rotation + question sur les coordo
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    faxisT3D.set&#40;faxisOfRot&#41;;
    tu as essayé avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    faxisT3D.setRotation&#40;faxisOfRot&#41;;
    ?
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

Discussions similaires

  1. Vos questions sur les choix et comparaisons de frameworks
    Par Ricky81 dans le forum Frameworks Web
    Réponses: 1
    Dernier message: 12/02/2012, 09h14
  2. Question sur les choix des logiciels pour un MMORPG (sérieux)
    Par Sinnax dans le forum Développement 2D, 3D et Jeux
    Réponses: 11
    Dernier message: 06/01/2011, 21h53
  3. Réponses: 10
    Dernier message: 10/01/2010, 17h36
  4. Réponses: 0
    Dernier message: 21/06/2009, 23h06
  5. Questions sur les rotations
    Par Pragmateek dans le forum DirectX
    Réponses: 7
    Dernier message: 17/07/2007, 02h41

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