Partage
  • Partager sur Facebook
  • Partager sur Twitter

trouver la valeur d'un angle orienté

    15 décembre 2018 à 15:49:02

    Bonjour à tous,

    il s'agirait de trouver la valeur d'un angle orienté dont on connait la position de chacun des points des deux vecteurs.

    Cette question peut paraitre triviale,

    Mais le problème est qu'un angle orienté peut être supérieur à π (pi), ainsi toutes les méthodes utilisant des triangles comme le théorème d'al Kashi ne marchent pas.

    De même, toutes les méthodes consistant à la fin à calculer un cos-1 ou un sin-1 ne fonctionnent pas non plus (car 0 < cos-1(x) <
    π  et - π/2< sin-1(x)< π/2   où  -1<x<1)


    merci d'avance pour toutes vos réponses,

    Thibault

    • Partager sur Facebook
    • Partager sur Twitter
      15 décembre 2018 à 19:08:31

      ThibaultDevodka a écrit:

      Mais le problème est qu'un angle orienté peut être supérieur à π (pi), ainsi toutes les méthodes utilisant des triangles comme le théorème d'al Kashi ne marchent pas.

      De même, toutes les méthodes consistant à la fin à calculer un cos-1 ou un sin-1 ne fonctionnent pas non plus (car 0 < cos-1(x) <
      π  et - π/2< sin-1(x)< π/2   où  -1<x<1)


      merci d'avance pour toutes vos réponses,

      Thibault


      Certe, mais si tu connais x, et y alors tu sais dans quel cadrant l’angle que tu cherchese situe et avec un peux de trigo tu peux retrouver ton angle: 

      si x et y sont positifs : ton angle est entre 0 et pi/2 

      si x < 0 et y > : langle est entre pi/2 et pi... pour les 4 quadrants

      hs : l’editeur est vraiment horrible sur mobile 

      -
      Edité par edouard22 15 décembre 2018 à 19:11:39

      • Partager sur Facebook
      • Partager sur Twitter
        16 décembre 2018 à 9:11:54

        Merci pour ta réponse,

        Mais c'est à dire que je ne compte pas faire un algorithmes avec des conditions...

        Mon but est de trouver les équations de trajectoire d'un système à deux corps.

        Je cherche donc un moyen uniquement calculatoire...

        • Partager sur Facebook
        • Partager sur Twitter
          16 décembre 2018 à 9:54:33

          La méthode habituelle, pour calculer l'angle orienté entre deux vecteurs, est de calculer le cosinus avec un produit scalaire et le sinus avec un produit vectoriel. Ensuite, on utilise soit l'arc cosinus suivi d'une analyse du signe du sinus, soit l'arc sinus suivi d'une analyse du signe du cosinus. Par exemple avec la première méthode l'arc cosinus fournit un angle entre 0 et 180°, et si le sinus est négatif on prend l'opposé de cet angle (ou 360° moins cet angle).

          Pour ça il faut effectuer un test, on n'y coupe pas. Si tu écris un programme, ce que tu appelles le moyen calculatoire sera donc une petite fonction ou une macro (selon le langage) contenant à la fin un test de signe.

          -
          Edité par robun 16 décembre 2018 à 23:30:43

          • Partager sur Facebook
          • Partager sur Twitter
            16 décembre 2018 à 13:01:49

            Sinon, il me semble que dans beaucoup de langages informatiques, la fonction atan2() est une variante de atan() qui fait exactement le travail demandé.
            • Partager sur Facebook
            • Partager sur Twitter
              16 décembre 2018 à 19:32:55

              merci pour vos réponse,

              robun, j'avais totalement oublié le produit scalaire et vectoriel, Je me cantonnais que avec les simples "formules", qui ne prenait pas en compte des vecteurs (al-kashi, etc...). De plus, je me rends compte que ma question est stupide car ce que j'ai besoin, ce n'est pas la mesure de l'angle mais de son cos et son sin. Donc merci.:)

              tbc92, merci aussi pour ta réponse, je ne connaissais pas du tout atan2 qui est juste parfait :)... à un détail près, car lorsque l'angle fait 180°, on se retrouve avec une division par 0.

              Donc je vais réfléchir à laquelle des deux méthode je vais prendre, mais en tout cas je m'attendais pas du tout à des réponses aussi clair et rapide...

              PS: je ne compte pas faire un algorithme ou un programme mais seulement trouver les équations horaires de deux corps en intégrant l'accélération et la vitesse pour trouver le vecteur position de chaque corps. Et je sais pas du tout où ça va me mener...

              -
              Edité par ThibaultDevodka 16 décembre 2018 à 19:34:39

              • Partager sur Facebook
              • Partager sur Twitter
                16 décembre 2018 à 23:33:39

                Concernant la fonction 'atan2', elle permet de trouver l'angle entre un vecteur et l'axe des abscisses, donc il y a d'abord deux angles à calculer avant de faire leur différence. (Cette fonction utilise d'ailleurs, en interne, une analyse de signe.) En C, ou en tout cas en GNU C, il n'y a pas de division par zéro : tous les cas sont gérés (c'est lorsque l'angle fait ±90° qu'il y aurait une division par zéro).

                PS: je ne compte pas faire un algorithme ou un programme mais seulement trouver les équations horaires de deux corps en intégrant l'accélération et la vitesse pour trouver le vecteur position de chaque corps.

                Ah OK, c'est donc uniquement du calcul littéral.

                -
                Edité par robun 16 décembre 2018 à 23:35:48

                • Partager sur Facebook
                • Partager sur Twitter

                trouver la valeur d'un angle orienté

                × 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