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

C++ Discussion :

Translation et rotation


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Translation et rotation
    Bonjour,

    Je suis en train de développer une application en c++ qui permet de reconstruire des objets dans des images, sauf que des fois les images reconstruites sont décalées càd que la reconstruction marche mais en sortie j'obtiens un objet en rotation d'un certain angle.
    Je voulais donc effectuer une rotation de cet objet là pour la positionner au même angle que l'objet de l'image de départ.
    J'effectue donc une rotation, 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
     
     
     for (int x = 0; x<dx;x++)
        {
            for (int y = 0; y<dy; y++)
            {
     
     
                imagerecale(x,y) = image((-cos(angle) * x) + (sin(angle) * y) ,
                                         -(sin(angle) * x) - (cos(angle) * y));
     
            }
        }
    où imagerecale est ma nouvelle image dans laquelle je stocke l'image reconstruite mais en rotation d'un certain angle.

    Ce truc là marche, le problème c'est que la rotation s'effectue autour du bord gauche bas de l'image initiale, j'obtiens donc juste un petit bout de l'objet qui sort du bord bas gauche.
    Je devrais effectuer une translation avant la rotation pour positionner l'objet dans l'image au centre et puis faire la rotation, peut être une translation au barycentre de l'objet de l'image ?

    Des idées ? Merci en avance !

  2. #2
    Membre actif
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Points : 281
    Points
    281
    Par défaut
    Salut,

    Je ne suis pas sur de comment t'aider mais...
    Si tu cherches juste à ajouter une translation à ta rotation, ne pourrais tu simplement pas ajouter la valeur du vecteur dans cette même boucle comme celà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    imagerecale(x,y) = image(((-cos(angle) * x) + (sin(angle) * y)) + TRANS_X ,
                                         (-(sin(angle) * x) - (cos(angle) * y)) + TRANS_Y );

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 68
    Points : 28
    Points
    28
    Par défaut
    peut être une translation au barycentre de l'objet de l'image
    Oui, une translation au centre de l'image, puis tu appliques ta rotation, puis naturellement, tu fais la translation inverse (barycentre vers coordonnées originales).

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/08/2009, 11h29
  2. Java2D : translation, rotation et changement de taille
    Par Grand sorcier dans le forum 2D
    Réponses: 1
    Dernier message: 13/04/2006, 17h25
  3. [java 3D] translations et rotations
    Par anotherboo dans le forum 3D
    Réponses: 2
    Dernier message: 29/01/2006, 15h23
  4. Réponses: 2
    Dernier message: 09/01/2006, 16h53
  5. [3D] gérer la rotations&translations
    Par kiroukou dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 21/10/2005, 18h44

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