Les rotations en OpenGL -> problème avec le type d'angle !
eldered
Messages postés232Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention25 mai 2022
-
10 avril 2007 à 14:49
eldered
Messages postés232Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention25 mai 2022
-
22 avril 2007 à 17:52
Bonjour à vous,
J'ai un petit probleme de compréhension (théorique) concernant les rotations en OpenGL.
Lors d'une rotation autour de l'axe z, voici comment est censée être modifiée la matrice identité :
Z - Axis:
|cos sin 0 0|
|-sin cos 0 0|
|0 0 1 0|
|0 0 0 1|
Je réalise une rotation d'un angle alpha, soit -0.785598. Je devrais donc obtenirr cela :
Z - Axis:
|0.707 0.707 0 0|
|-0.707 0.707 0 0|
|0 0 1 0|
|0 0 0 1|
Apres une petite reflexion, j'ai remarqué que ces valeurs avaient été calculées en mode "degrés", alors que j'ai besoin du mode "radians" pour obtenir de bons résultats. OpenGL réalise donc ses opérations en mode "degrés". Comment puis-je modifier ce mode au sein d'OpenGL (y-a t il une option) ou alors puis-je mathématiquement, de part un traitement en amont, modifier mes données pour que le mode "dergrés" ne soit plus un pboblème ?
eldered
Messages postés232Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention25 mai 2022 10 avril 2007 à 14:49
Bonjour à vous,
J'ai un petit probleme de compréhension (théorique) concernant les rotations en OpenGL.
Lors d'une rotation autour de l'axe z, voici comment est censée être modifiée la matrice identité :
Z - Axis:
|cos sin 0 0|
|-sin cos 0 0|
|0 0 1 0|
|0 0 0 1|
Je réalise une rotation d'un angle alpha, soit -0.785598. Je devrais donc obtenirr cela :
Z - Axis:
|0.707 0.707 0 0|
|-0.707 0.707 0 0|
|0 0 1 0|
|0 0 0 1|
Apres une petite reflexion, j'ai remarqué que ces valeurs avaient été
calculées en mode "degrés", alors que j'ai besoin du mode "radians"
pour obtenir de bons résultats. OpenGL réalise donc ses opérations en
mode "degrés". Comment puis-je modifier ce mode au sein d'OpenGL (y-a t
il une option) ou alors puis-je mathématiquement, de part un traitement
en amont, modifier mes données pour que le mode "dergrés" ne soit plus
un pboblème ?
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 10 avril 2007 à 16:25
A ma connaissance, openGL n'utlisise que les degres pour faire les rotations.
Il faut que tu fasse des conversions radians vers degrés sinon.
Version degres = 180.0/pi * angle en radian
eldered
Messages postés232Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention25 mai 2022 22 avril 2007 à 17:43
Comme a dis Laurent, OpenGL n'utilise que les dégrés. Il faut donc convertir son parametre (l'angle) en degré avant d'utiliser la fonction de rotation (sur x, y ou z).
// Radian to dregree :
angle = 360.0*(angle/2.0*3.14159265);