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

Mathématiques Discussion :

Calculer les coordonnées d'un point en rotation elliptique


Sujet :

Mathématiques

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3
    Points : 2
    Points
    2
    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 :
    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.

  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (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 813
    Points : 7 638
    Points
    7 638
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    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.

  4. #4
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (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 813
    Points : 7 638
    Points
    7 638
    Par défaut
    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

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    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.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 26/01/2014, 13h06
  2. Réponses: 4
    Dernier message: 27/11/2006, 18h06
  3. Calculer les coordonnées de la souris en 3D ?
    Par supergrey dans le forum DirectX
    Réponses: 3
    Dernier message: 26/08/2006, 21h47
  4. [VB.net] changer les coordonnées d'un Point dans un Path
    Par Speranza dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/06/2006, 11h28
  5. [GRAPHIQUE] Récupérer les coordonnées d'un point
    Par freud dans le forum Composants VCL
    Réponses: 6
    Dernier message: 29/09/2005, 12h31

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