Salve ragazzi, dovrei implementare lo zoom e il pan della camera in una scena 3d tramite mouse. Il problema nel pan sorge quando l'eye presenta componenti non nulle su x e y e quando l'up è diverso da 0 1 0. Nello zoom invece faccio così:
void motionfunc(int x, int y){
const int dx = x - oldX;
const int dy = y - oldY;
if ( mouseLeft ){
if ( Shift ){
eyex -= eyex/100*dx;
eyey -= eyey/100*dx;
eyez -= eyez/100*dx;
}
}
oldX = x;
oldY = y;
}
Il problema è che quando lo zoom è molto ravicinato la scena fa una strana rotzione. Non so se mi sono spiegato bene, si accettano suggerimenti e, se li avete, anche codici in c