2012-11-03 1 views

Répondre

8

Cela devrait fonctionner pour la plupart des l'inclinaison d'un objet avec une matrice de transformation, en particulier en utilisant glMultMatrix (matrice)

enter image description here

matrix1[] = { 
1, 0, 0, 0, 
tan(a), 1, 0, 0, 
0, 0, 1, 0, 
0, 0, 0, 1 
}; 

matrix2[] = { 
    1, 0, 0, 0, 
    0, 1, 0, 0, 
    tan(a), 0, 1, 0, 
    0, 0, 0, 1 
}; 

matrix3[] = { 
    1, tan(a), 0, 0, 
    0, 1, 0, 0, 
    0, 0, 1, 0, 
    0, 0, 0, 1 
}; 

matrix4[] = { 
    1, 0, 0, 0, 
    0, 1, 0, 0, 
    0, tan(a), 1, 0, 
    0, 0, 0, 1 
}; 

matrix5[] = { 
    1, 0, tan(a), 0, 
    0, 1, 0, 0, 
    0, 0, 1, 0, 
    0, 0, 0, 1 
}; 

matrix6[] = { 
    1, 0, 0, 0, 
    0, 1, tan(a), 0, 
    0, 0, 1, 0, 
    0, 0, 0, 1 
}; 
+0

spécifi cs: 1) oblique suivant x, par rapport à l'axe y, 2) inclinaison suivant x, par rapport à l'axe z, 3) inclinaison selon y, par rapport à l'axe x, 4) inclinaison selon y, par rapport à l'axe z, 5) inclinaison le long de z, par rapport à l'axe x, 6) inclinaison le long de z par rapport à l'axe y. Vous pouvez voir que c'est le placement du 'tan (a)' dans la matrice aussi, par exemple 1) ** quand vous multipliez un vecteur avec la matrice, la composante y du résultat est affectée par le 'tan (a)' - affecté par la quantité de la composante x du vecteur. Une autre façon d'y penser est que x devient plus grand, il y a plus de biais dans le résultat. –

Questions connexes