2012-11-03 17 views

risposta

8

Questo dovrebbe funzionare per la maggior parte di inclinazione di un oggetto con una matrice di trasformazione, in particolare utilizzando 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

specifi cs: 1) disallinea lungo x, relativo all'asse y, 2) disallinea lungo x, relativo all'asse z, 3) disallinea lungo y, relativo all'asse x, 4) disallinea lungo y, relativo all'asse z, 5) obliquamente lungo z, rispetto all'asse x, 6) inclinati lungo z rispetto all'asse y. Potete vedere che questo è anche il posizionamento di 'tan (a)' nella matrice, es. 1) ** quando moltiplicate un vettore con la matrice, la componente y del risultato è influenzata dal 'tan (a)' - influenzato dalla quantità della componente x del vettore. Un altro modo per pensarci è che quando x diventa più grande, c'è più skew nel risultato y. ** –

Problemi correlati