C++ - Rotation autour d'un axe quelconque

Résolu/Fermé
kamilion86 Messages postés 17 Date d'inscription samedi 1 janvier 2011 Statut Membre Dernière intervention 10 mars 2011 - Modifié par green day le 11/01/2011 à 10:31
xamurai Messages postés 223 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 19 février 2013 - 20 janv. 2011 à 00:21
Bonjour,
Mon programme C++ consiste à la réalisation d'une rotation d'un point P, d'angle µ, autour d'une droite (AB) avec A(x1,y1,z1) et B(x2,y2,z2) de coordonnées fixes.
La plupart des articles traitent le cas d'une rotation autour des axes X ou Y ou Z.
J'ai essayé la matrice proposée sur le site du zéro
https://openclassrooms.com/fr/courses/167717-creez-des-programmes-en-3d-avec-opengl/167556-les-matrices
mais il n'a pas marché.

Avez vous une idée pour la construction de la matrice de rotation désirée?





Édit : titre.

4 réponses

green day Messages postés 26371 Date d'inscription vendredi 30 septembre 2005 Statut Modérateur, Contributeur sécurité Dernière intervention 27 décembre 2019 2 162
19 janv. 2011 à 19:07
Salut,

Si tu pouvais nous exposer ta solution afin qu'elle puisse etre profitable à tous, par avance merci !

Voici ce que j'avais trouvé de mon coté :

http://eraquila.iquebec.com/site/theo/matrice.htm

https://openclassrooms.com/forum/sujet/algo-maths-3d-rotation-autour-d-un-axe-59899

http://www.les-mathematiques.net/phorum/read.php?2,116402,116407

@+
1
kamilion86 Messages postés 17 Date d'inscription samedi 1 janvier 2011 Statut Membre Dernière intervention 10 mars 2011 3
Modifié par kamilion86 le 19/01/2011 à 23:36
c'est une simple rotation dans le plan (Oyz), ce qui doit donner :

|x' | | 1 0 0 | | x |
|y' + y1 | = | 0 cosa -sina | * | y - y1 |
|z' + z1 | | 0 sina cosa | | z - z1 |

Bon je l'ai testé et m'a donné le résultat désiré
Merci pour votre remarque :)
0
green day Messages postés 26371 Date d'inscription vendredi 30 septembre 2005 Statut Modérateur, Contributeur sécurité Dernière intervention 27 décembre 2019 2 162
9 janv. 2011 à 13:35
Salut,

Il te suffit de définir tes variables cartésiennes en coordonnées polaires :)

@+
0
kamilion86 Messages postés 17 Date d'inscription samedi 1 janvier 2011 Statut Membre Dernière intervention 10 mars 2011 3
19 janv. 2011 à 14:29
merci pour votre aide, mais j'ai trouvé une autre solution
0
xamurai Messages postés 223 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 19 février 2013 15
20 janv. 2011 à 00:21
Oui Sinus + cosinus devrait faire l'affaire

inspire toi des fonctions d'horloge javascript qui existe sur certains site
0