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

Flash Discussion :

rotation d'un objet en 3D


Sujet :

Flash

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut rotation d'un objet en 3D
    Bonjour, j'ai un objet 3D, et je voudrais le faire tourner de 90°.
    mon objet est une suite de points définies avec 3 coordonnées (x,y,z).
    la rotation selon x pour l'exemple est un prototype de la fonction constructrice des coordonées :
    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
     
    //constructeur
    function Vector3d(x, y, z) {
        this.x = x;
        this.y = y;
        this.z = z;
    }
    //methodes
     
    Vector3d.prototype.rotateX = function(ca, sa) {
          with (this) {
            y = y*ca-z*sa;
            z = y*sa+z*ca;
        }
    };
    et j'applique sur mon bouton de rotation le code suivant :
    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
     
    on(press)
    {
        cosa = Math.cos((Math.PI/2)/180);
        sina = Math.sin((Math.PI/2)/180);
     
        //application de la méthode de rotation aux points
        for(i=0;i<2*nb_faces;i++){
            _root.viewer.pointsd[i].rotateX(cosa,sina);
            _root.viewer.pointsg[i].rotateX(cosa,sina);
                    _root.viewer.points[i].rotateX(cosa,sina);
              }
        //application de la méthode de rotation aux milieux des faces
        for(i=0;i<nb_faces+2;i++){
            _root.viewer.milieuxd[i].rotateX(cosa,sina);
            _root.viewer.milieuxg[i].rotateX(cosa,sina);
            _root.viewer.milieux[i].rotateX(cosa,sina);
            }
     
     
    }
    le probleme est que ca ne me fait pas du tout une rotation à 90°.
    J'ai essayé de remplacer la valeur de cosa et sina par 0 et 1, et la ca tourne à 90°, mais que une seule fois!!!! ensuite, ma figure ne bouge plus. Serait-ce un problème de formule, ou d'autre chose?????

    je joint le fla avec la rotation
    cosa = Math.cos((Math.PI/2)/180);
    sina = Math.sin((Math.PI/2)/180);
    Fichiers attachés Fichiers attachés

  2. #2
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 30
    Points
    30
    Par défaut
    bon bah je me suis débrouillé tt seul. Pour ceux que ca intéresse qd même , il suffit d'enlever le "/180" dans la valeur du cos et du sin.

  3. #3
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 150
    Points : 51
    Points
    51
    Par défaut
    bon bah je me suis débrouillé tt seul. Pour ceux que ca intéresse qd même , il suffit d'enlever le "/180" dans la valeur du cos et du sin.
    Il te suffit de remplacer le /180 par /2, c'est parceque les angles doivent être en radian pour les fonction sin et cos de Math, mais juste un truc, quand l'angle de rotation devient assez élevé (comme ci-dessus) le cylindre devient "bizzarre" lorsque tu pivote plusieurs fois (ses parties s'interfèrent). Enfin c'est juste une remarque

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] faire une rotation d'un objet
    Par cortex59 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/04/2008, 16h42
  2. Réponses: 1
    Dernier message: 03/10/2007, 17h38
  3. Rotation d'un objet sur lui-même
    Par Ninouw dans le forum OpenGL
    Réponses: 6
    Dernier message: 29/12/2006, 09h40
  4. Rotation d'un objet
    Par DefmY dans le forum 2D
    Réponses: 6
    Dernier message: 30/03/2006, 01h17
  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