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]Centre de rotation


Sujet :

3D Java

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 165
    Points : 137
    Points
    137
    Par défaut [Java3D]Centre de rotation
    Bonjour,
    Je cherche à faire une rotation selon un centre en mouvement.
    Donc comment prendre les coordonnées d'un point (pointe de mon volume)?
    Puis, où le mettre dans le code qui suit (J'ai reécrit la classe MouseRotate) ?

    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
    if ((id == MouseEvent.MOUSE_DRAGGED) &&
                        !evt.isMetaDown() && !evt.isAltDown() && !evt.isControlDown()) {
                    x = evt.getX();
                    y = evt.getY();
     
                    dx = x - x_last;
                    dy = y - y_last;
     
                    if (!reset) {
                        x_angle = dy * y_factor;
     
                        AxisAngle4f axis = new AxisAngle4f(1, 0, 0, (float) (x_angle));
                        transformX.set(axis);
                        transformGroup.getTransform(currXform);
     
                        Matrix4d mat = new Matrix4d();
                        // Remember old matrix
                        currXform.get(mat);
     
                        // Translate to origin
                        if (invert) {
                            currXform.mul(currXform, transformX);
                        } else {
                            currXform.mul(transformX, currXform);
                        }
     
                        // Set old translation back
                        Vector3d translation = new Vector3d(mat.m03, mat.m13, mat.m23);
                        currXform.setTranslation(translation);
     
                        // Update xform
                        transformGroup.setTransform(currXform);
     
                        transformChanged(currXform);
     
                        if (callback != null) {
                            callback.transformChanged(MouseBehaviorCallback.ROTATE,
                                    currXform);
                        }
                    } else {
                        reset = false;
                    }
     
                    x_last = x;
                    y_last = y;
                } else if (id == MouseEvent.MOUSE_PRESSED) {
                    x_last = evt.getX();
                    y_last = evt.getY();
                }
    Merci

    Edit:
    Avec ce code, le centre de rotation est toujours au centre de notre volume. Pouvons nous choisir le centre de rotation ?

  2. #2
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 165
    Points : 137
    Points
    137
    Par défaut
    Bonjour,
    Pour re-poser ma question en plus simple :
    Comment faire une rotation en un point définie ?
    Merci

Discussions similaires

  1. [OpenGL] centre de rotation d'une arcball
    Par lucmoulinier dans le forum OpenGL
    Réponses: 0
    Dernier message: 23/02/2009, 16h30
  2. Caméra orbitale et centre de rotation
    Par mannaz dans le forum Ogre
    Réponses: 0
    Dernier message: 24/09/2007, 20h51
  3. [FLASH 8] centre de rotation
    Par bibile dans le forum Flash
    Réponses: 1
    Dernier message: 17/05/2007, 10h55
  4. Réponses: 2
    Dernier message: 25/03/2007, 21h49
  5. Réponses: 11
    Dernier message: 08/01/2006, 22h06

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