Changement de base
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

Changement de base



  1. #1
    invitef5db7211

    Changement de base


    ------

    Bonjour,
    je suis actuellement en stage dans une entreprise en informatique. J'aurais besoin de vos lanternes sur un problème que je rencontre.
    Je possède une zone de dessin affichée à l'écran dans laquelle je viens cliquer avec la souris. Je récupère ensuite les coordonnées du clic par rapport à cette zone. La zone est orientée vers le bas et peut donc être vue comme un repère orthonormé orienté en bas. Le point supérieur gauche est donc le point (0,0) le point supérieur droit (largeur,0) et le point inférieur gauche (0,hauteur) .
    Maintenant imaginons que je crée une deuxième zone de dessin, qui est la zone précédente tournée d'un certain angle alpha. Le centre de rotation est le centre de la première zone. Ma question est: comment connaître les coordonnées du clic dans cette nouvelle zone. Je sais que c'est une histoire de matrice de passage et tout ça mais je me rappelle plus trop bien comment cela fonctionne.

    une petite illustration pour vous aider.


    Merci d'avance.

    -----

  2. #2
    invitef5db7211

    Re : Changement de base

    j'ai oublié l'image pardon.

  3. #3
    cleanmen

    Re : Changement de base

    Salut,

    sans dessin c'est un peu dur d'être rigoureux, mais sans passer par tout ce qui est base/ matrices de rotation/... tu peux t'en sortir très facilement en mettant des cos(alpha) et sin(alpha) aux bons endroits.

    (dans ton dessin il suffit de projeter OM sur tes nouveaux axes)

  4. #4
    invitef5db7211

    Re : Changement de base



    J'ai ajouté l'image. Au cas où je met le lien.
    http://www.hostingpics.net/viewer.ph...941exemple.jpg

    Merci pour la réponse.

    Dans mon dessin le repere noir est le repère d'origine et donc la zone d'origine. Je connais les coordonnées de ma croix dans le repère noir, je voudrais maintenant ces coordonnées dans le repère rouge. Le repère rouge est mon repère noire sur lequel une rotation du centre de la zone de dessin(représenté par le repère noir) et d'un angle alpha que je connais a été appliquée. Pouvez me donner plus ample informations desormais?

    Merci d'avance.

  5. A voir en vidéo sur Futura
  6. #5
    cleanmen

    Re : Changement de base

    Le dessin que vous fournissez laisse penser que le nouveau repère n'a pas la même origine que l'ancien.
    En lisant vos précédents posts, il semble que les deux repères aient la même origine.

    En concidérant que l'orignie est la même pour les deux repères,
    on note (0,i,j) le premier repère et (O, u,v) qui a tourné d'un angle alpha.
    Je vous donne ici la méthode générale avec les matrices et tout et tout pour trouver ce que vous cherchez.

    on concidère M le point dont vous connaissez les coordonnées dans (0,i,j):
    M(x,y) dans (0,i,j).



    On utilise les formules de changement de repère:


    Il suffit d'inverser A, et il vient:



    Il y a évidemment la méthode plus calculatoire sans matrice qui marche très bien comme je l'ai dit plus haut.

    (Faites attention au signe de alpha dans le chgt de repère.)

  7. #6
    invitef5db7211

    Re : Changement de base

    Bonjour,
    merci de votre réponse. Comme vous l'avez constater vous même les deux repères n'ont pas la même origine. Il faut donc bien se baser sur le dessin pour m'aider. Comme je l'ai dit precedemment le nouveau repère est identique au précedent sauf qu'il a subi une rotation d'un angle alpha et dont le centre de la rotation est le centre de ma zone de dessin représenté par le repère noir. Le centre de rotation est donc (largeur/2,hauteur/2). Je peux calculer la norme de o'm sans probleme où o' est l'origine du nouveau repere et m le point cherché.

    Merci d'avance

  8. #7
    cleanmen

    Re : Changement de base

    si l'origine change, on note O' l'origine du "3eme repère" de coordonnée O'(a,b) dans le repère (O,u,v).
    Dans le repère (O',u,v) on note les coordonnées du point M (X',Y'),

    On a:


    Donc dans le repère (O',u,v):

  9. #8
    invitef5db7211

    Re : Changement de base

    Merci d'avoir répondu.
    Il me semble que vous n'avez pas bien regardé le dessin.Déjà il n'y pas trois mais deux repères. Ensuite il ne s'agit pas d'une simple translation de repère mais d'une rotation dont le centre n'est pas l'origine du premier repère mais le centre de la zone de dessin.
    Comme dit precedemment la zone de dessin est représenté par le repère noire. L'origine du repère est le coin supérieur gauche de la zone de dessin et le repère est orienté vers le bas. Le centre de rotation est donc le centre de la zone de dessin. Le repère rouge correspond à ma nouvelle zone de dessin. Je veux donc les coordonnées de la croix que je connais dans la zone de dessin représenté par le repère noir en coordonnées dans la deuxieme zone de dessin représenté par le repère rouge.

    Merci d'avance.

  10. #9
    cleanmen

    Re : Changement de base

    oui et bien le repère en rouge sur votre schéma est ce que j'ai appelé "troisieme repère".

    Pour résumé je suis parti du du repère d'origine (le premier repère): (O,i,j)
    Puis j'ai concidéré le repère (O,u,v): qui est la rotation du premier repère d'un angle alpha selon l'axe (O vec(k)). (k est le vecteur du repère (O,i,j,k) de R^3 ) . J'ai appelé le repère (O,u,v) le "second repère".

    Ce que j'ai appelé le "troisième repère" c'est le repère (O',u,v). C'est le repère en rouge sur votre schéma.

    Il faut faire attention au fait que l'on utilise les coordonnée de O' dans le repère (O,u,v) (coordonnées que j'ai noté (a,b)) dans le dernier message. (a,b) se trouve à partir des coordonnées dans le repère (o,i,j) avec la dernière formule de mon second message (celui avec les matrices de rotation).
    Dernière modification par cleanmen ; 21/05/2010 à 17h23.

  11. #10
    invitef5db7211

    Re : Changement de base

    Merci pour votre réponse.
    Si j'ai bien compris, vous avez effectuer une rotation du repère (o,i,j) vous l'avez appeller (o,u,v) et ensuite vous l'avez déplacer en o' ce qui donne (o',u,v).
    Mais cela ne correspond pas à ma transformation, enfin je ne crois pas.
    La rotation s'effectue sur le centre de la zone de dessin symbolisé par le repère noire. Ce n'est pas la même chose que de le tourner sur place et d'ensuite le déplacer en o'.Enfin je ne pense pas.

  12. #11
    cleanmen

    Re : Changement de base

    le problème réside bien dans la recherche des coordonnées d'un point M dans le repère rouge que j'ai appelé (O',u,v), non? (sachant que l'on connaît evidemment les coordonnées de M dans le repère (O,i,j) )

    Si oui, alors la méthode est valable: on recherche dans une première partie les coordonnées de M dans (O,u,v). Puis on donne les coordonnées de M dans le repère (O',u,v).

  13. #12
    invitef5db7211

    Re : Changement de base

    Bonjour,
    merci de votre réponse. Effectivement, il s'agit bien de calculer les coordonnées du point M dans le repère rouge (o',u,v). Je vais essayer votre technique. Je l'avais déjà en tête mais j'étais sceptique sur le fait que la rotation du repère noire selon d'axe k,suivi d'une translation en O' revienne au même qu'une rotation du repère noire dont le centre de rotation est le centre de la zone(largeur/2,hauteur/2). C'est d'ailleurs pour cela que je bloquais un peu; Mais finalement en me remémorant mes cours de prépa et DUT il me semble que ds les matrices de passage on effectuait bien une concaténation de translation et rotation.

    Je vais essayer de suite et vous dit ce qu'il en est.

  14. #13
    invitef5db7211

    Re : Changement de base

    Cela n'a pas trop l'air de fonctionner. J'ai des coordonnées négatives. Pourtant j'ai bien fait comme on a dit. Je calcul O' dans o,i,j. Pour cela je récupère les coordonnées de 0 dans un nouveau repere dont l'origine est le milieu de la zone de dessin. 0(-largeur/2,hauteur/2) Ensuite je calcul les coordonnées de 0' dans ce repère.Donc pour cela je récupère les coordonnées polaires de 0. Ensuite je rajoute l'angle de rotation, j'obtien ainsi les coordonnées polaires de O' puis les carthésiennes. Je récupère ses coordonnées dans le repère (o,i,j) avec x=x+largeur/2 et y=hauteur/2 -y.
    Ensuite je calcule les coordonnées de 0' dans o,u,v à l'aide de la matrice de rotation. Je calcul également les coordonnées de mon clic dans le repère o,u,v à l'aide de la matrice. Je calcul ensuite les coordonnées du clic dans le 3° repère avec X=x-a et Y=y-b où (a,b) coordonnées du clic dans le repère o,u,v. Mais cela ne fonctionne pas. Le problème vient peut être du fait que le repère soit orienté vers le bas. Si mon angle de rotation est de 45° quelle valeur de alpha dois je indiquer ds les formules?(+ ou -45?)
    Merci d'avance

  15. #14
    invitef5db7211

    Re : Changement de base

    Bon apparemment ça fonctionne. Je calculais les coordonnées de O' dans (o,i,j) pour rien car elles sont à largeur/2,0 automatiquement. J'ai essayé avec une rotation de 30 et 60° cela fonctionne parfaitement.
    Merci.

Discussions similaires

  1. Changement de base
    Par brady32 dans le forum Mathématiques du supérieur
    Réponses: 7
    Dernier message: 21/04/2010, 14h07
  2. changement de base
    Par invite97bf24da dans le forum Mathématiques du collège et du lycée
    Réponses: 4
    Dernier message: 21/03/2010, 09h27
  3. Changement de base
    Par invitec13ffb79 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 08/12/2008, 11h13
  4. changement de base
    Par invited231abb3 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 03/05/2008, 12h53
  5. Changement de base en MQ
    Par Etile dans le forum Physique
    Réponses: 19
    Dernier message: 28/11/2007, 13h19