Я написал функцию мыши для камеры. Работает хорошо. Но единственная проблема заключается в начале, когда я сначала двигаюсь с помощью мыши, она прыгает вверх-налево, а затем она работает хорошо. Я не понимаю, почему это происходит.Движение мыши OpenGL GLUT
Здесь функция мыши.
float lastx = 0.0;
float lasty = 0.0;
void mouseMovement(int x, int y)
{
lastx = (float)x - lastx;
lasty = (float)y - lasty;
if((float)x > lastx)
Camera.RotateY((-lastx)*0.01);
else
Camera.RotateY(lastx*0.01);
if((float)y > lasty)
Camera.RotateX(lasty*0.01);
else
Camera.RotateX(-lasty*0.01);
lastx = (float)x;
lasty = (float)y;
Display();
}
Просто гадать ... lastx & lasty не инициализируются ничем значимым, поэтому первый вызов mouseMovement начинается с двух случайных вычитаний. –