|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Invité de passage
![]() Inscription : janvier 2013 Messages : 3 ![]() |
Bonjour,
J'ai les coordonnées (x,y) d'un point dans un plan cartésien. J'aimerais faire tourner ce point de THETA degrés, en ayant les coordonnées du centre de rotation dans ce même plan. Pour un rotation circulaire, j'ai cette formule : Citation:
Quelqu'un peut-il m'aider SVP. Merci. |
|
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() ![]() Jean-Michel BORLOTFabricant et casseur d'avions Inscription : avril 2004 Messages : 3 215 ![]() |
Salut
Citation:
Code :
y' = k*(sin(theta)*(x-xc) + cos(theta)*(y-yc)) + yc Sauf si ton ellipse est inclinée... |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2013 Messages : 3 ![]() |
Merci pour la réponse.
Cela fonctionne si x et y sont les coordonnées d'un point du cercle en rotation et x' et y' la transformation de cette rotation circulaire en rotation elliptique. Si x et y sont le résultat d'une transformation précédente, j'obtiens une rotation en spirale. Y a t'il une solution simple qui permette de faire tourner un point de l'ellipse. Sinon la solution proposée me convient en n'appliquant le coefficient k que pour l'affichage, en mémoire de travail, le point tournera en rond. |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() ![]() Jean-Michel BORLOTFabricant et casseur d'avions Inscription : avril 2004 Messages : 3 215 ![]() |
Citation:
Bon, c'est vrai que ce n'est pas aussi direct que ça finalement... Le soucis avec la formule que je t'ai donné, si tu la conserves en "mémoire de travail", c'est qu'elle va travailler sur des angles basés sur le cercle avant homothétie pour revenir sur l'ellipse. Du coup, l'angle de rotation n'est pas conservé. Par exemple, si tu demandes 90° de rotation, il y a de fortes chances qu'au final tu aies plus de 90° entre les deux points sur ton ellipse. Essaie de partir sur l'équation de l'ellipse plutôt (x²/a²+y²/b²=1), tu calcules l'angle de départ avec un atan2(x_depart-xc,y_depart-yc), ensuite l'angle d'arrivée étant donné par l'angle de départ+l'angle de rotation, tu auras tan(angle arrivée)=(y_arrivée-yc)/(x_arrivée-xc), que tu réinjectes dans l'équation de l'ellipse pour avoir le point correspondant (équation du second degré à résoudre, avec quelques tests sur les angles pour voir quelle solution choisir). Ce n'est pas super simple, mais ça devrait fonctionner. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : janvier 2013 Messages : 3 ![]() |
Désolé, je n'emploie pas le langage mathématique. Le terme 'transformation' que j'utilise dans mon post correspond au terme 'homothétie' dans le tien.
Finalement je vais rester sur la première solution car en effet l'angle THETA que je souhaite faire varier est celui basé sur le cercle avant homothétie. Merci. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com