GordonFreeman
30-11-2005, 22:02
Quando si chiama la funzione glRotatef() , è vero che il vettore di rotazione deve essere un vettore identità? cioè uno fra
(1,0,0)
(0,1,0)
(0,0,1)
perchè ho provato a far ruotare il mondo rispetto ad un vettore diverso,ma mi sembra che non funzioni
allora,chiedo questo perchè devo fare ciò : devo ruotare il mondo rispetto ai tre vettori iniziali,in qualsiasi momento...
quando faccio glRotatef() , ovviamente la matrice di rotazione cambia,cioè la base cambia,ad esempio se la base iniziale è la matrice identità,e faccio questo
glRotatef(60,1,0,0);
la base diventa
( 1,0,0 )
( 0,cos(60),sin(60) )
( 0,-sin(60),cos(60) )
e se faccio poi una rotazione rispetto all'asse y o z , cioè rispetto a 0,1,0 o 0,0,1, in realtà la rotazione viene eseguita rispetto AL NUOVO asse y o z,non a quelli originali
da qui la mia necessità di tenere traccia di quanto valgono i vettori base iniziali nel sistema di riferimento GL_MODELVIEW corrente,e poi ruotare rispetto a quei vettori
ma mi sembra che non funzioni,qualcuno ci ha provato?
(1,0,0)
(0,1,0)
(0,0,1)
perchè ho provato a far ruotare il mondo rispetto ad un vettore diverso,ma mi sembra che non funzioni
allora,chiedo questo perchè devo fare ciò : devo ruotare il mondo rispetto ai tre vettori iniziali,in qualsiasi momento...
quando faccio glRotatef() , ovviamente la matrice di rotazione cambia,cioè la base cambia,ad esempio se la base iniziale è la matrice identità,e faccio questo
glRotatef(60,1,0,0);
la base diventa
( 1,0,0 )
( 0,cos(60),sin(60) )
( 0,-sin(60),cos(60) )
e se faccio poi una rotazione rispetto all'asse y o z , cioè rispetto a 0,1,0 o 0,0,1, in realtà la rotazione viene eseguita rispetto AL NUOVO asse y o z,non a quelli originali
da qui la mia necessità di tenere traccia di quanto valgono i vettori base iniziali nel sistema di riferimento GL_MODELVIEW corrente,e poi ruotare rispetto a quei vettori
ma mi sembra che non funzioni,qualcuno ci ha provato?