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

Algorithmes et structures de données Discussion :

Rotation rectangle


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 135
    Points : 44
    Points
    44
    Par défaut Rotation rectangle
    Bonjour,


    excusez moi je voudrais realiser la rotation d'un rectangle en 2D.
    Je possede le point du centre du rectangle : x_centre et y_centre.
    le coin superieure gauche : x1 et y1;
    le coin inferieure droit : x2 et y2;

    j'aimerais donc effectuer une rotation autour du centre.

    je voulais utiliser une matrice de rotation 2D
    http://fr.wikipedia.org/wiki/Rotatio...torielle_plane

    j'ai donc fait :

    entier r_angle = ((angle *3.1415) /360);//conversion en radian


    x1 = x1*( cos(r_angle) - y1 *(sin(r_angle) );
    y1 = x1*( sin(r_angle))+ y1* (cos(r_angle));

    x2 = x2*( cos(r_angle) )- y2 *(sin(r_angle) );
    y2 = x2*( sin(r_angle)) + y2* (cos(r_angle));

    Mais apparemment cela n'effectue pas du tout la rotation attendue


    Merci

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Evidemment!
    Vous effectuez
    x1 = x1*( cos(r_angle) - y1 *(sin(r_angle) ); // 1
    y1 = x1*( sin(r_angle))+ y1* (cos(r_angle)); // 2

    x2 = x2*( cos(r_angle) )- y2 *(sin(r_angle) ); // 3
    y2 = x2*( sin(r_angle)) + y2* (cos(r_angle)); // 4
    l'opération en 1 modifie x1 pour le calcul de y1 en 2 !
    idem entre 3 et 4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
         x_1 = x1*( cos(r_angle) - y1 *(sin(r_angle) );
         y1  = x1*( sin(r_angle))+  y1* (cos(r_angle));
         x_2 = x2*( cos(r_angle) )- y2 *(sin(r_angle) );
         y2  = x2*( sin(r_angle)) +  y2* (cos(r_angle));
     
    x1 = x_1;
    x2 = x_2;
    est plus correct!

Discussions similaires

  1. Rotation rectangle => déformation
    Par spin0us dans le forum Algorithmes et structures de données
    Réponses: 16
    Dernier message: 25/08/2010, 09h02
  2. rotation rectangle cercle
    Par demss dans le forum Mathématiques
    Réponses: 9
    Dernier message: 11/02/2008, 03h58
  3. [vb6] Rotation d'un rectangle
    Par Asdorve dans le forum Vos contributions VB6
    Réponses: 106
    Dernier message: 05/07/2006, 11h06
  4. Rotation d'un rectangle
    Par erwan.bodere dans le forum SDL
    Réponses: 4
    Dernier message: 02/12/2005, 21h19
  5. Rotation d'un rectangle autour du centre de gravité
    Par bucheron dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 22/06/2004, 11h01

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