Partage
  • Partager sur Facebook
  • Partager sur Twitter

Determiner un angle de rotation.

Sujet résolu
    16 janvier 2011 à 16:52:29

    Bonjour,

    Je suis confronté à un problème d'ordre mathématique pour un projet perso. Je dispose des coordonnées du centre de mon image, que nous appellerons i_x et i_y. Je dispose aussi de m_x et m_y qui représente les coordonnées de la souris.

    Ce que je souhaite, c'est trouver l'angle formé entre la droite souris/image et la droite parrallèle à l'axe des ordonnées passant par le centre de mon image.

    Je suis donc parti sur de la trigo et j'ai opté pour la tangente.

    Ainsi, je devrais avoir Angle=atan(-A/B) ou A=i_x - m_x et B=i_y - m_y

    Cette formule fonctionne lorsque B est positif. Cependant, lorsque B est négatif, j'obtiens les mêmes angles que pour des valeurs positives de B.

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      16 janvier 2011 à 20:58:58

      Si tu obtiens le même angle, la réponse c'est Pie [2Pie] sur R.. Après ça me parait bizarre que tu aies les mêmes angles. La tangente est parallèle à l'abscisse ?
      • Partager sur Facebook
      • Partager sur Twitter
        16 janvier 2011 à 21:36:36

        Je ne sais pas trop, j'utilise la tangente systeme, elle me fait les mêmes calculs que celle d'une calculatrice ou autre.

        Mais en gros, si je schématise, ça donne ça :

        (en rouge, la souris, en bleu, le centre de l'image, en noir l'angle obtenu)

        Image utilisateur


        En fait, c'est pas le même angle mais l'angle opposé
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          16 janvier 2011 à 21:57:07

          Si tu as la fonction <math>\(\arctan\)</math> de disponible :

          <math>\(\alpha = \left\{ \begin{array}{ll} \arctan \frac{x}{y} & \mbox{si } y > 0 \\ \pi \cdot \mathop{\mathrm{sign}} x & \mbox{si } y = 0 \\ \pi + \arctan \frac{x}{y} & \mbox{si } y < 0 \end{array} \right.\)</math>

          où <math>\(x\)</math> et <math>\(y\)</math> sont les coordonnées de la souris relativement au centre de ton image.
          • Partager sur Facebook
          • Partager sur Twitter
            16 janvier 2011 à 22:30:48

            ça résoud mon problème, merci beaucoup.

            Cependant, je me pose une question, en manipulant cos et sin ou acos et asin, n'y a t'il pas de formule plus directe ?
            • Partager sur Facebook
            • Partager sur Twitter
              17 janvier 2011 à 14:16:57

              Si : <math>\(\alpha = \frac{\pi}{2} - \arctan \frac{y}{x}\)</math> (attention en x=0, cela marche à condition d'implémenter les infinis.)
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                17 janvier 2011 à 17:25:10

                Je ne pense pas que ça marche : rien qu'en y = 0 par exemple, le résultat est toujours <math>\(\frac{\pi}{2}\)</math>, qu'on ait x > 0 ou x < 0, alors qu'on devrait obtenir <math>\(-\frac{\pi}{2}\)</math> pour x < 0.

                De manière générale, pour x < 0, il y a des soucis :) .
                • Partager sur Facebook
                • Partager sur Twitter
                  17 janvier 2011 à 17:40:06

                  J'avais pas vu les schémas, et je travaillais sans orientation des angles. Dsl donc.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 janvier 2011 à 18:51:35

                    Merci beaucoup, je ferais avec la première formule du coups :)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 janvier 2011 à 14:46:12

                      En général en informatique tu dispose de la fonction atan2(y,x) qui permet d'être plus précis que atan(y/x) et qui permet de gérer les cas spéciaux... Plus de problèmes !
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Determiner un angle de rotation.

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown