C++ - Rotation autour d'un axe quelconque

Résolu
kamilion86 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
xamurai Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

4 réponses

green day Messages postés 26374 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   2 163
 
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   Statut Membre Dernière intervention   3
 
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 26374 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   2 163
 
Salut,

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

@+
0
kamilion86 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   3
 
merci pour votre aide, mais j'ai trouvé une autre solution
0
xamurai Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   15
 
Oui Sinus + cosinus devrait faire l'affaire

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