Précédent   Forum du club des développeurs et IT Pro > Autres langages > Algorithmes > Mathématiques
Mathématiques Forum d'entraide sur les mathématiques et l'algorithmique numérique. Avant de poster : Cours d'algorithmique numérique
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 02/01/2013, 16h48   #1
MisterG
Invité de passage
 
Homme
Inscription : janvier 2013
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2013
Messages : 3
Points : 1
Points : 1
Par défaut Calculer les coordonnées d'un point en rotation elliptique

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:
x' = cos(theta)*(x-xc) - sin(theta)*(y-yc) + xc
y' = sin(theta)*(x-xc) + cos(theta)*(y-yc) + yc
Je souhaiterais adapter cette formule pour une rotation elliptique en y insérant un coefficient qui représente le ratio entre hauteur et largeur de l'ellipse.

Quelqu'un peut-il m'aider SVP.

Merci.
MisterG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 17h07   #2
plegat
Expert Confirmé Sénior
 
Jean-Michel BORLOT
Fabricant et casseur d'avions
Inscription : avril 2004
Messages : 3 215
Détails du profil
Informations personnelles :
Nom : Jean-Michel BORLOT
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Fabricant et casseur d'avions
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : avril 2004
Messages : 3 215
Points : 5 378
Points : 5 378
Salut

Citation:
Envoyé par MisterG Voir le message
Je souhaiterais adapter cette formule pour une rotation elliptique en y insérant un coefficient qui représente le ratio entre hauteur et largeur de l'ellipse.
Code :
y' = k*(sin(theta)*(x-xc) + cos(theta)*(y-yc)) + yc
avec k ton fameux coefficient, et ça devrait le faire.

Sauf si ton ellipse est inclinée...
__________________
"Errare humanum est, sed perseverare diabolicum"

Ma page sur DVP.com
plegat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 11h24   #3
MisterG
Invité de passage
 
Homme
Inscription : janvier 2013
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2013
Messages : 3
Points : 1
Points : 1
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.
MisterG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 13h35   #4
plegat
Expert Confirmé Sénior
 
Jean-Michel BORLOT
Fabricant et casseur d'avions
Inscription : avril 2004
Messages : 3 215
Détails du profil
Informations personnelles :
Nom : Jean-Michel BORLOT
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Fabricant et casseur d'avions
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : avril 2004
Messages : 3 215
Points : 5 378
Points : 5 378
Citation:
Envoyé par MisterG Voir le message
Si x et y sont le résultat d'une transformation précédente, j'obtiens une rotation en spirale.
J'ai eu un peu de mal à comprendre ta réponse, mais finalement, j'ai saisi...

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.
__________________
"Errare humanum est, sed perseverare diabolicum"

Ma page sur DVP.com
plegat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2013, 14h19   #5
MisterG
Invité de passage
 
Homme
Inscription : janvier 2013
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2013
Messages : 3
Points : 1
Points : 1
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.
MisterG est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h22.


 
 
 
 
Partenaires

Hébergement Web