Partage
  • Partager sur Facebook
  • Partager sur Twitter

Calculer les coordonnées d'un point sur une sphere

    18 novembre 2011 à 10:37:20

    Bonjours,

    Dans un projet informatique j'ai besoin de calculer la coordonnée d'un point sur une sphere en fonction de deux angles. Je connais le rayon de la sphere.J'ai besoin d'un formule me permettant d'avoir la modification de mon point(x,y,z) lorsque les angles changes. Malheureusement suite a mes recherches sur internet je ne l ai pas trouvé donc je me tourne vers vous.

    Prenons un exemple pour que ca soit un peut plus clair :
    J'ai un point en x,y,z de 4,0,0 avec un angle de sur le plan xy de 0 et un angle sur le plan xz de 0, normalement je ne dois pas changer l angle sur le plan yz. Le rayon de la sphere etant de 4.
    Je souhaite connaitre la position du point lorsque l'angle xy est de 20° et que l'angle xz est de 30° par exemple.

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      18 novembre 2011 à 11:06:44

      Salut,
      sans l'exemple, c'était clair, mais avec, ça l'est moins... o_O Enfin, je vais faire comme si j'avais compris.

      Donc, si je comprend bien, tu as une sphère dont le centre est à (0,0,0) de coordonnées, et d'un rayon donné. Ensuite, tu veux déterminer les coordonnées d'un point de cette sphère selon l'angle formé avec les axes.

      Et bien, c'est très simple : un peu de trigo suffit. J'édite dans un instant avec un petit schéma.

      Le voilà : ici, pour la clarté, c'est en 2D avec un cercle, (mais avec une sphère, c'est pareil, tu as juste une coordonnée de plus à calculer, mais comme tu as aussi un angle de plus, ça se fait de la même façon sur le drnier axe).

      Image utilisateur

      (bon il est pas terrible, le cercle doit avoir son centre en 0,0, mais quoi, un peu d'imagination :lol: )

      On a <math>\(x(P)=OP\times \cos (a)=R\times \cos (a)\)</math>
      <math>\(y(P)=OP\times \sin (a)=R\times \sin (a)\)</math>

      C'est de la trigo pure et simple, si tu ne vois pas pourquoi on trouve ça, je te détaillerai.
      • Partager sur Facebook
      • Partager sur Twitter
        18 novembre 2011 à 12:01:37

        Merci pour ta réponse,

        Tu as bien compris le problème.

        Si j'ai bien compris pour avoir le x de mon point je dois multiplier le rayon par le cosinus de mon angle et pour avoir le y de mon point je dois multiplier le rayon par le sinus de mon angle.
        Le problème c'est que comme c est un axe en 3 dimensions et que j ai un deuxième angle sur l'axe yz, je ne vois pas comment calculer avec le deuxième angle.

        Je me demandais aussi ce que représente OP dans la formule.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          18 novembre 2011 à 12:08:54

          Ah, ben OP, c'est la longueur du segment OP, mais en fait c'est le rayon. (j'avais mis OP pour que tu vois bien où ça se passe, mais visiblement, ce n'était pas nécéssaire). Pour ta troisième dimension : tu refais de la trigo, mais avec ton autre angle. Supposon sur le schéma que l'axe Oz vienne vers toi. Maintenant, si tu as l'angle qui est dans le plan (Oxz) (a étant dans le plan (Oxy)), tu peut parfaitement mené un raisonnement similaire au précédent, mais dans le plan (Oxz) au lieu de (Oxy). Si ce n'est toujours pas clair, dis le moi, j'essayerai de te faire un schéma 3D.
          • Partager sur Facebook
          • Partager sur Twitter
            18 novembre 2011 à 16:04:25

            Citation : balo069

            J'ai un point en x,y,z de 4,0,0 avec un angle de sur le plan xy de 0 et un angle sur le plan xz de 0, normalement je ne dois pas changer l angle sur le plan yz.


            Dans l'espace, on utilise d'habitude plutôt des coordonnées sphériques (angle de la projection sur le plan Oxy par rapport à Ox et angle par rapport à l'axe Oz). Ton système de coordonnées est également possible, mais il a le désavantage de ne pas être bijectif, à moins de se restreindre à une demi-sphère (au demi-espace x ≥ 0, par exemple). Au fait, pour pouvoir t'aider davantage, peux-tu s'il te plaît préciser deux choses :
            • Qu'entends-tu exactement par « angle sur le plan xy » ? S'agit-il de l'angle formé entre la projection du vecteur OP sur le plan Oxy et l'axe Ox, ou est-ce l'angle entre OP et le plan Oxy ?
            • Que veux-tu dire par « normalement je ne dois pas changer l angle sur le plan yz » ? :-°
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              18 novembre 2011 à 18:25:46

              Pour résoudre ton problème, tu devrais t'intéresser aux coordonnées sphériques ;)
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                18 novembre 2011 à 21:57:37

                Bonsoir,

                Sous réserve que j'interpréte correctement ce que tu veux faire , je pense qu'il y a une incompatibité si tu cherches à faire une rotation de P dans chaque plan séparémment

                Tu ne peux imposer à la fois une rotation dans le plan 0xy et dans le plan Oxz sur le même point P

                dans 0xy en explicitant le calcul de @adri1, les coordonnées de P dans ce plan deviennent P'
                x =4cos(20°)
                y =4sin(20°)
                ( ce qui revient à une rotation de 20° autoir de 0z )

                en faisant la même chose dans Oxz, tu devrais avoir
                x =4cos(30°)
                z= 4sin(20°)
                C'est une rotation autour de 0y qui te donne un point P"

                Il est clair que les coordonnées obtenues ne peuvent être associées au même point P puisque x est différent
                La rotation ne peut être utiliséz que par composition successive.
                La seconde rotation doit être appliquée autour de Oy au point P' .

                A toutes fins utiles je rappelle la façon générale de calculer un changement de coordonnées par rotation.
                De façon pratique, une rotation autour d'un axe se fait en utilisant les matrices de rotation.

                Si les rotations successives sont effectuées autour des axes de coordonnées, les expressions sont simples:

                <math>\(\[MZ_{ = } \begin{pmatrix}cos\theta&-sin\theta&0 \\sin\theta&cos\theta&0 \\0&0&1\end{pmatrix}\] \[MX_{ = } \begin{pmatrix}1&0&0 \\0&cos\varphi&-sin\varphi \\0&sin\varphi&cos\varphi\end{pmatrix}\]\[MY_{ = } \begin{pmatrix}cos\psi&0&-sin\psi \\0&1&0 \\esin\psi&0&cos\psi\end{pmatrix}\]\)</math>
                Les coordonnées du vecteur transformé sont alors obtenues par produit matriciel
                <math>\([x_1,y_1,z_1]^t=MX .MY .MZ [x_0,y_0,z_0]^t\)</math>
                ( attention l'ordre des matrices est important, le produit ds rotations n'est pas commutatif)
                • Partager sur Facebook
                • Partager sur Twitter

                Calculer les coordonnées d'un point sur une sphere

                × 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