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 :

Rotations en coordonnées sphériques


Sujet :

Mathématiques

  1. #21
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    φ est l'angle non orienté formé par les vecteurs z et OP, appelé angle zénital ou colatitude ;
    phi est l'angle entre la VERTICALE et OP....

    S'en servir dans une rotation centrée en O est compliqué..
    Avec la "latitude" (delta), tu tourneras effectivement autour du centre de manière simple...(car alors delta est l'angle entre le plan et le point)
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  2. #22
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Points : 262
    Points
    262
    Par défaut
    pour ma part ça fonctionne plutôt bien, mise à part les pb d'arrondies : rotations.rar

  3. #23
    Invité
    Invité(e)
    Par défaut
    hello,

    pour moi c'est également bon
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    #!/usr/bin/node
    function CartesianPoint(x,y,z){
      this.x = x;
      this.y = y;
      this.z = z;
    }
    function SphericalPoint(pho, theta, phi){
      this.pho = pho;
      this.theta = theta;
      this.phi = phi;
    }
    function cartesianToSpheric(p){
      var pho = Math.sqrt(p.x*p.x + p.y*p.y +p.z*p.z);
      var theta = Math.atan2(p.y, p.x);
      var phi = Math.acos(p.z/pho);
      return new SphericalPoint(pho, theta, phi);
    }
    function sphericToCartesian(s){
      var x = s.pho*Math.sin(s.phi)*Math.cos(s.theta);
      var y = s.pho*Math.sin(s.phi)*Math.sin(s.theta);
      var z = s.pho*Math.cos(s.phi);
      return new CartesianPoint(x,y,z);
    }
    function sphericOffset(s, theta, phi){
      return new SphericalPoint(s.pho, s.theta+theta, s.phi+phi);
    }
    function transform(p, theta, phi){
      var s = cartesianToSpheric(p);
      //console.log(s)
      var s2 = sphericOffset(s, theta, phi);
      //console.log(s2)
      var p2 = sphericToCartesian(s2);
      //console.log(p2)
      return p2;
    }
    function testShift(beg, theta, phi, end, label){
      var p = new CartesianPoint(beg[0], beg[1], beg[2]);
      p2 = transform(p, theta, phi);
      var eps = 0.00001;
      if(Math.abs(end[0]-p2.x)> eps || Math.abs(end[1]-p2.y)> eps || Math.abs(end[2]-p2.z)> eps){
        console.error(label+' ',p2,' expected ',end)
      }
    }
    function test(){
      testShift([0,0,1], Math.PI, 0, [0,0,1], 'no rot on z');
      testShift([0,0,1], Math.PI/2, 0, [0,0,1], 'no rot2 on z');
      testShift([1,0,0], 0, 0, [1,0,0], 'identity');
      testShift([1,0,0], 0, Math.PI, [-1,0,0], 'rot on z');
      testShift([1,0,0], Math.PI, -Math.PI/2, [0,0,1], 'rot on theta and z');
     
      var theta = Math.PI/2;
      var phi = -Math.PI/3;
      //u is rotated [1,0,0] by angle theta
      ux = 1*Math.cos(theta)
      uy = 1*Math.sin(theta)
      vx = 1*Math.cos(phi); //colinear to u
      vz = 1*Math.sin(phi); //colinear to -z
      //v = vx e_u + vz e_z
      //v = vx (ux e_x + uy e_y) - vz e_z
      v = [vx*ux, vx*uy, -vz]
     
      testShift([1,0,0], theta, phi, v, 'rot on theta and z2');
    }
    test()
    http://jsfiddle.net/f80tybwy/

    edit: j'utilise les formules de wiki, il faudrait éventuellement tester dans les autres cardans...
    Dernière modification par Invité ; 30/12/2014 à 00h01. Motif: Coloration syntaxique [code=JavaScript] ... [/code]

  4. #24
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Je viens de faire quelques tests et il semblerait que ce soit un problème de quadrants.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  5. #25
    Invité
    Invité(e)
    Par défaut
    ca serait pas mal si tu arrives à isoler un point qui met en erreur la fonction.

    sinon on peut tenter d'en trouver un avec des matrices de rotation, puis fuzzy testing en comparant la sortie de la fonction et de celle des matrices pour une même entrée.

    au pire, on y tracte à la main...

  6. #26
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Points : 262
    Points
    262
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Je viens de faire quelques tests et il semblerait que ce soit un problème de quadrants.
    ça fonctionne très bien. Tu as juste une erreur de codage à mon avis.

  7. #27
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Citation Envoyé par galerien69 Voir le message
    ca serait pas mal si tu arrives à isoler un point qui met en erreur la fonction.

    sinon on peut tenter d'en trouver un avec des matrices de rotation, puis fuzzy testing en comparant la sortie de la fonction et de celle des matrices pour une même entrée.

    au pire, on y tracte à la main...
    Je m'en suis aperçu avec une simple ligne centrée et orientée suivant X, puis j'ai tenté une rotation de 45° suivant Phi. J'ai un magnifique V.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  8. #28
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    538
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 538
    Points : 262
    Points
    262
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Je m'en suis aperçu avec une simple ligne centrée et orientée suivant X, puis j'ai tenté une rotation de 45° suivant Phi. J'ai un magnifique V.
    Fonctionne très bien. Attention à l'angle phi_n qui doit être compris entre 0 et Pi (tu ne peut pas faire un tour de sphère avec phi).

  9. #29
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Je m'en suis aperçu avec une simple ligne centrée et orientée suivant X, puis j'ai tenté une rotation de 45° suivant Phi. J'ai un magnifique V.
    Oui, normal !

    Comme je l'écrivais hier, La transformation Phi --> phi+x n'est pas une rotation.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  10. #30
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    La transformation Phi --> phi+x n'est pas une rotation.
    Pourquoi ?
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  11. #31
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Visualise le globe terrestre.
    Les points du cercle polaire Nord sont définis par : Phi=85 ( ou Phi=5 .. selon qu'on parle de latitude ou de colatitude).
    Quand on applique à ces points une transformation phi=phi+2 .... on rapproche ces points du pole nord.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  12. #32
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Oui, ils se rapprochent du pôle nord, donc c'est une rotation par rapport à l'axe passant par les pôles.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  13. #33
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Citation Envoyé par ToTo13 Voir le message
    Oui, ils se rapprochent du pôle nord, donc c'est une rotation par rapport à l'axe passant par les pôles.
    Ma définition des rotations, c'est par exemple celle qu'on trouve ici :
    http://fr.math.wikia.com/wiki/Rotation

    Et en particulier :
    La rotation conserve :
    les longueurs;
    les angles (l'image d'un angle est un angle de même mesure);
    les parallèles (les images de deux droites parallèles sont parallèles);
    les aires (l'image d'une figure est une figure de même aire).


    La rotation au sens strict ne modifie pas les angles, ni les longueurs. Un cube qu'on fait tourner reste un cube.
    Une rotation, c'est quand on prend un objet, et qu'on le fait tourner sur lui même.

    Ici, avec la transformation proposée : Les points se rapprochent du pole nord.
    Donc les angles ne sont pas conservés, les distances non plus. Cette transformation n'est pas une rotation telle que définie par le site en question.

    Et il ne faut pas s'étonner si, avec cette transformation, une ligne droite devient un magnifique V. Ou si le plan équatorial devient un cône.



    Une rotation par rapport à l'axe passant par les pôles, c'est quand on fait : longitude = longitude + x . C'est le mouvement que fait la terre quand elle tourne sur elle même.
    Quand on fait : latitude = latitude + x, ça porte peut-être un nom, mais je doute fort. En tout cas, ce n'est pas une rotation.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  14. #34
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Visualise le globe terrestre.
    Les points du cercle polaire Nord sont définis par : Phi=85 ( ou Phi=5 .. selon qu'on parle de latitude ou de colatitude).
    Quand on applique à ces points une transformation phi=phi+2 .... on rapproche ces points du pole nord.
    Effectivement, je viens de me réveiller et de comprendre ce que tu voulais dire.
    Il n'est en effet pas possible de gérer une rotation de "l'inclinaison" en polaire.
    Merci.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 7
    Dernier message: 21/06/2017, 15h31
  2. question de trigo (coordonnées sphériques)
    Par olivier.taranis dans le forum Programmation multimédia/Jeux
    Réponses: 10
    Dernier message: 23/04/2014, 09h51
  3. Vecteur orthogonal en coordonnées sphériques
    Par on2101 dans le forum Mathématiques
    Réponses: 2
    Dernier message: 06/04/2012, 21h24
  4. Coordonnées sphériques->cartésiennes dans l'espace
    Par dridri85 dans le forum Mathématiques
    Réponses: 4
    Dernier message: 20/02/2011, 15h51
  5. Probleme de coordonnées sphériques
    Par patatose dans le forum Moteurs 3D
    Réponses: 2
    Dernier message: 12/08/2006, 02h57

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