Bonjour à tous,
J'ai passé ma soirée d'hier à essayer de comprendre les math sous sous-jacents à openGL. Je vous explique ce qui m'intrigue :
Je vais appeler My la matrice de rotation sur Y d'un angle de pi/2 et Mz la matrice de rotation sur Z du même angle.
Si je choisis un point P de coordonnées (1, 1, 0) et que je lui applique les 2 transformations (rotY puis rotZ) j'obtiens par les calculs (-1 0 1) = Mz*My*P. Graphiquement ça donnerait :
Donc a priori on effectue les 2 rotations à la suite par rapport au repère d'origine, confirmez vous ?
Si maintenant je crée un point en opengl en faisant :
LoadIdentity
glRotate(90, 0, 1, 0)
glRotate(90, 0, 0, 1)
glPoint(1, 1, 0)
Alors j'obtiens un point de coordonnées (0, 1, 1) dans le repère d'origine. De ce que j'ai compris d'openGL ce qui est fait est :
Mon problème est que je n'arrive pas à faire le lien entre les 2. D'un coté avec les matrices on tourne toujours par rapport au repère d'origine, et en openGL le repère change (comment ?). J'ai du mal à saisir la subtilité, s'il y en a une.
Si vous pensez pouvoir m'expliquer le pti truc qui coince j'en serais ravis !
Merci d'avance,
Alex
Partager