PDA

View Full Version : [OPENGL] Ruotare la telecamera


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?

GordonFreeman
02-12-2005, 21:50
ho risolto,grazie lo stesso :)