Tom's Guide > Forum > Etudes / Travail > Rotation d'un point par rapport a un point qqonque

Rotation d'un point par rapport a un point qqonque

Forum Etudes / Travail : Rotation d'un point par rapport a un point qqonque

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonsoir a tous,

J'aurais besoin de quelques rappels mathématiques.

Dans un plan a 2 dimensions (x,y). J'ai 2 points A de coordonnées (x1,y1) et B de coordonnées (x2,y2) dans un plan d'origine O(x3,y3) (Simplement pour dire que ce n'est pas une rotation de l'axe).
Ces 2 points peuvent etre reliés par une droite qui sera le rayon du cercle de rotation.
J'aurais besoin de faire pivoter le point B d'un angle Alpha (connu disons 20° par exemple) par rapport au point A pour arriver au point B'(x2',y2').

J'aurais besoin (très rapidement si cela est possible), de connaitre l'équation qui permet la rotation du point B par rapport au point A d'un angle Alpha.

(Attention, pas une rotation de l'axe O, dans ce cas la les équations seraient:
x2'=x2*(cos(Alpha))-y2*sin(Alpha);
y2'=x2*(cos(Alpha))+y2*cos(Alpha);
)

Merci beaucoup
Thomas

PS: même une page web donnant une esquisse de solution serait le bienvenue car je n'ai trouvé qu'un rotation par rapport a l'axe d'origine.
Merci

------------------------------ Thomas
------
"Education is our passport to the future, for tomorrow belongs to the people who prepare for it today" (Malcolm X)
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Il suffit de translater ton repère en A, apres il te reste qu'à trouver avec tes formules les coordonnées de B', puis de revenir dans l'ancienne base par translation "inverse"...Ceci se formalise tres bien avc les matrices mais cet outil n'est pas non plus nécessaire.

Il faut donc :
écrire les coordonnées de B dans le repere A
trouver les coordonnées de B' dans le repère A (avec tes formules)
mettre les coordonnées de B' dans le repère initial (il suffit de translater de vecteur AO).

------------------------------ Ce que nous ignorons a plus d’influence sur nos vies que ce que nous savons
Répondre à abel_b

Je te remercie, m'ais c'est encore un peu flou pour moi, je n'ai pas touché a la trigo et surtout aux repères orthonormés depuis plusieurs années. Pourrais-tu me rappeler comment effectuer une translation du repère lui même? LA méthode avec les matrices me convient parfaitement ;-)

En fait je dois faire un programme en Matlab qui puisse faire tourner une image (MATRICE) d'un angle défini a partir d'un point quelconque de cette matrice (défini aussi). Voila pourquoi j'ai besoin de connaitre la formule qui permet de faire tourner un point B quelconque d'un angle Alpha par rapport au point A. Après je n'aurais qu'a appliquer cette formule a tous les pixels de ma matrice.

Merci beaucoup en tout cas, j'ai déja des premiers éléments de réponse.
Thomas

PS: Si tu en sais plus je suis preneur ;-)

------------------------------ Thomas
------
"Education is our passport to the future, for tomorrow belongs to the people who prepare for it today" (Malcolm X)
Répondre à totoc1001@IDN

Je suppose que ta base reste fixe (seule l'origine du repère change et pas les vecteurs unitaires)

Je peux te donner la formule :
soit un repère (O,x,y)
centre de rotation C(a,b)
point M(x,y) à faire tourner
alpha = angle de rotation
M'(x',y') image de M par rotation(C,alpha) dans le repère (O,x,y)

alors CM' = R*CM (où CM et CM' sont des vecteurs)
où R est la matrice de rotation d'angle alpha, autrement dit :
CM=(x-a;y-b)
CM'=(x'-a,y'-b)

R=
cos(alpha) sin(alpha)
-sin(alpha) cos(alpha)

ce qui donne :
(x';y') = R*(x-a,y-b) + (a,b) où les couples sont des vecteurs donc à representer en tant que matrice 2,1

EDIT : apres on peut faire la meme chose pour avoir les coordonnées dans une autre base, pour réaliser une homotetie, une affinité orthogonale, une symétrie et toute autre transformation géométrique linéaire.


Message édité par abel_b le 14-11-2006 à 18:41:47
------------------------------ Ce que nous ignorons a plus d’influence sur nos vies que ce que nous savons
Répondre à abel_b

Merci beaucoup pour ta reponse.

Dans le cas ou le rayon du cercle de rotation ne soit pas unitaire, suffirait-il simplement de multiplier la matrice
R=
|cos(alpha) sin(alpha) |
|-sin(alpha) cos(alpha) |
par un coefficient correspondant au rayon du cercle de rotation?

Et pourrais-tu me confirmer que nous obtiendrions bien les equations suivantes:

|cos(alpha) sin(alpha) |
x’=Rayon* (x-a) *|-sin(alpha) cos(alpha) | + a

|cos(alpha) sin(alpha) |
y’=Rayon* (y-b) *|-sin(alpha) cos(alpha) | + b


Merci beaucoup pour ton aide
Thomas

Répondre à totoc1001@IDN

Pas besoin de multiplier par R !!!
la rotation n'affecte que les vecteurs donc la norme est conservée donc si ton "cercle de rotation" est de rayon R, alors CM et CM' sont de norme R donc pas de multiplication...On multiplierais par R si on voulais appliquer une homotétie composée d'une rotation au vecteur initial ce qui reviendrais à "grossir" ton image et de la faire tourner.

PS : il faut d'abord ecrire la matrice*vecteur et non vecteur*matrice...en écrivant tes vecteurs en collone.
PS' : attention tu as écris x'=..... qui est un vecteur donc tu as marqué : reel=vecteur, il ne faut pas considérer x' et y' séparément mais comme étant un vecteur.

Message cité 1 fois
Message édité par abel_b le 14-11-2006 à 20:06:00
------------------------------ Ce que nous ignorons a plus d’influence sur nos vies que ce que nous savons
Répondre à abel_b

abel_b a écrit :


PS : il faut d'abord ecrire la matrice*vecteur et non vecteur*matrice...en écrivant tes vecteurs en collone.
PS' : attention tu as écris x'=..... qui est un vecteur donc tu as marqué : reel=vecteur, il ne faut pas considérer x' et y' séparément mais comme étant un vecteur.


Comme ceci?

|cos(alpha) sin(alpha)|
x’=|sin(alpha) cos(alpha) |* (x-a) + a

|cos(alpha) sin(alpha) |
y’=|-sin(alpha) cos(alpha) |*(y-b) + b

La j'ai les coordonnées de mon point résultant c'est bien ca?

------------------------------ Thomas
------
"Education is our passport to the future, for tomorrow belongs to the people who prepare for it today" (Malcolm X)
Répondre à totoc1001@IDN

Non car ca n'a aucun sens d'additionner une matrice et un scalaire :
il faut faire :
|x| = R*|x-a| + |a|
|y| |y-b| |b|
(matriciellement)

où R est la matrice 2x2 de rotation d'angle alpha

Message cité 1 fois
Message édité par abel_b le 14-11-2006 à 21:35:36
------------------------------ Ce que nous ignorons a plus d’influence sur nos vies que ce que nous savons
Répondre à abel_b

abel_b a écrit :

Non car ca n'a aucun sens d'additionner une matrice et un scalaire :
il faut faire :
|x| = R*|x-a| + |a|
|y| |y-b| |b|
(matriciellement)

où R est la matrice 2x2 de rotation d'angle alpha


Je te remercie sincèrement, ca marche trop bien. Merci

Je t'ai déja vu répondre plusieurs fois a des questions de math je peux te demander ce que tu fais?

Si tu es prof de math... c'est bon a savoir lol

Merci en tout cas.

Bye
Thomas

------------------------------ Thomas
------
"Education is our passport to the future, for tomorrow belongs to the people who prepare for it today" (Malcolm X)
Répondre à totoc1001@IDN

Je suis étudiant en maths spé (bac+2)

------------------------------ Ce que nous ignorons a plus d’influence sur nos vies que ce que nous savons
Répondre à abel_b

abel_b a écrit :

Je suis étudiant en maths spé (bac+2)


C'est bon a savoir ca ;-)
Bravo pour ta Spé, c'est pas facile de passer la sup ;-)

Bye

Thomas

------------------------------ Thomas
------
"Education is our passport to the future, for tomorrow belongs to the people who prepare for it today" (Malcolm X)
Répondre à totoc1001@IDN
Tom's Guide > Forum > Etudes / Travail > Rotation d'un point par rapport a un point qqonque
Aller à :

Il y a 1818 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens