Bienvenue, vous n'êtes pas connecté. ( Se connecter - S'enregistrer )
Espace culture
Espace forum
Faire un don
Hypo-thèses > Forum > Parlons sciences ! > Forum de mathématiques > Matrice de rotation
| MarbolanGos | #1 18/06/2008 - 09h52 |
|
Hors ligne
|
Salut,
allez voici une petite discussion qui va amener les mathématiciens à encore partir dans des idées tordues mais j'en ai un peu besoin. Mon objectif est de faire tourner un système (non sans blague) mais le système est assez particulier ce sont des atomes que l'on va considérer comme des points parce que les matheux comprennent pas ce qu'est un atome (vite je m'esquive). J'ai retrouvé dans mes archives de cours la matrice de rotation pour le plan, celle-ci est aussi sous wikipedia mais des que l'on doit tourner dans l'espace c'est pas la même. Celle-ci est disponible là : http://fr.wikipedia.org/wiki/Rotation_vectorielle#.C3.89criture_matricielle La suite de l'article wikipédia part dans des informations que je comprends pas tout. Ensuite une autre information TRES importante, je ne possède les coordonnées que en cartésien (les sphériques c'est pas trop adapté pour moi). Et aussi mon axe de rotation n'est pas forcément (0 0 0). Même si pour cela une simple translation préliminaire suffit. Prenons un exemple (en image) : http://img337.imageshack.us/my.php?image=imagezl7.png Bon le dessin a été fait en 2 minutes donc m'en voulez pas mais je pense que le principe est donné. J'ai pas mis les axes mais bon ça change pas grand chose on supposera qu'à la fin l'oxygène-Calcium est sur l'axe y. |
| Meianki | #2 18/06/2008 - 14h25 |
|
Hors ligne
|
Hum si tu connais ton axe de rotation ta matrice de rotation dans l'espace est en fait un matrice de rotation dans le plan...
Bon c'est pas clair d'accord ![]() Tu as ton axe de rotation, tu prends le plan perpendiculaire à l'axe et qui passe par ton point. Tu obtiens un système plan où tu dois faire ta rotation. Au final ta matrice en 3d c'est ça : C'est c'est pour une rotation autour de l'axe z dans la base centrée sur ton atome. Un changement de base doit pouvoir se faire assez simplement si tu as la position de ton atome, ainsi tu peux avoir la matrice de passage P entre la base voulue et la base canonique (c'est les coordonnées de la base voulue dans la canonique), tu l'inverses (soit par opérations élémentaire en essayant d'obtenir la matrice unité puis en appliquant les mêmes opérations à la matrice unité ensuite,ou si tu as les vecteurs de ta base de l'atome en écrivant les vecteurs de la base canonique dans la base de l'atome, ou alors tout bêtement avec un logiciel de calcul )Et tu vas alors avoir la matrice de rotation en canonique qui sera : Voilà en espérant que je suis pas à côté de la plaque ^^" |
| General Vans | #3 18/06/2008 - 19h21 |
|
Codeur En ligne Courriel
|
Juste un truc, la matrice de passage est celle d'une symétrie donc P-1=tP ?
C'est surement une connerie |
| Meianki | #4 18/06/2008 - 20h17 |
|
Hors ligne
|
La matrice de passage est orthogonale seulement si tu prends une base orthogonale pour la base de l'atome (la base canonique est déjà orthogonale)
Donc rien à voir avec la symétrie. |
| General Vans | #5 18/06/2008 - 23h08 |
|
Codeur En ligne Courriel
|
ah oui mince désolé j'ai confondu
Ce message a été édité par General Vans le 18/06/2008 à 23h08.
|
| MarbolanGos | #6 19/06/2008 - 10h16 |
|
Hors ligne
|
Si je comprends bien je dois ramener mon système dans le plan xy, enfin les 2 atomes considérés (ici O et Ca) ?
Là déjà je sais pas faire... Puis appliquer la matrice de rotation là ça ira. Au maximum je vais rester en coordonnées cartésiennes parce que c'est un repère orthonormé et puis il faut que je régénère les géométries à la fin du fichier. En tout cas merci. Si on peut m'éclaire sur la première manipulation à effectuer ? Ca serait pas une rotation aussi par hasard ? |
| Meianki | #7 19/06/2008 - 11h21 |
|
Hors ligne
|
La première manipulation c'est un changement de base, il te faut un vecteur sur ton axe de rotation, et deux autres vecteurs dans ton plan.
A priori tu as l'axe de rotation, donc tu as sa direction, donc tu peux en prendre un vecteur normé. Tu as un vecteur orthogonal au plan donc tu as le plan(ou presque) (p): ax + by + cz = d a,b,c sont les coordonnées du vecteur normal. Tu dois déterminer d pour que l'atome appartienne au plan. Donc remplacer x,y,z par les coordonnées de l'atome. Ensuite tu trouves un vecteur qui appartienne à ce plan. Il sera orthogonal au premier puisqu'il est dans le plan. Tu normalise le dit vecteur. Enfin tu fais un produit vectoriel pour avoir le dernier. Tu te retrouve avec une base orthonormée. Je pense que ça peut marcher. |
| MarbolanGos | #8 20/06/2008 - 08h50 |
|
Hors ligne
|
Il va falloir que je reprenne ça à tête reposée et que je regarde comment coder cela.
D'ailleurs c'est bizarre que personne l'ait déjà écrit ce bout de code en fortran ça m'aurait bien aidé ![]() Réinventons la roue ! En tout cas merci, je vais coder cela et je donnerai le code quand il marchera |
| 11TLP | #9 22/06/2008 - 03h41 |
|
|
* passage rapide, coucou tout le monde ! xD *
J'ai le code en TI-Basic pour la rotation dans le plan mais pour la 3D en fortran c'est pas pour moi |
| MarbolanGos | #10 22/06/2008 - 15h21 |
|
Hors ligne
|
La rotation dans le plan c'est facile je l'ai déjà codé en Fortran c'est la version en 3D qui est un peu dure pour moi. Après j'en suis sûr que ça doit déjà être écrit dans un code libre mais où ?
[edit] J'ai trouvé cette page : http://www.siggraph.org/education/materials/HyperGraph/modeling/mod_tran/3drota.htm#Rotation%20about%20an%20Arbitrary%20Axis Ca a l'air de me donner ce que je veux mais c'est compliqué. Un autre : http://www.mines.edu/~gmurray/ArbitraryAxisRotation/ArbitraryAxisRotation.html
Ce message a été édité par MarbolanGos le 22/06/2008 à 17h47.
|
| MarbolanGos | #11 24/06/2008 - 11h14 |
|
Hors ligne
|
Allez voici le sous-programme qui fait ce que je voulais
SUBROUTINE ROT3D(XA, YA, ZA, XB, YB, ZB, NBATMA, NBATMB) |
Hypo-thèses > Forum > Parlons sciences ! > Forum de mathématiques > Matrice de rotation
> Informations du forum
1 personne(s) présente(s) sur ce forum au cours des dernières 20 minutes (0 membre(s) et 1 invité(s)).


Accueil
Livre d'or
L'équipe
S'inscrire
Connexion
Forum











)


Tout le contenu du site - sauf avis contraire - est placé sous licence Creative Commons.