Я нашел свою камеру внутри 3D-куба -
public void display(GLAutoDrawable drawable) {
...
glu.gluLookAt(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ);
...
}
Это выглядит так - (каждый цвет - боковой замок) -
Теперь я пытаюсь повернуть, и камера смотрит (три centerX, centerY, centerZ
) вокруг оси X - в соответствии с этой формулой вращения -
Он работает хорошо, пока не достигнет состояния, когда значение Z станет отрицательным, и после этого взгляд камеры начнет вращаться в другую сторону оси X.
Я показываю вам значения (centerX,centerY,centerZ)
в диапазоне этой ошибки -
1.0 -1.2817129 0.59767246 //ok
1.0 -1.3289262 0.4836895 // ok
1.0 -1.3660256 0.36602536 //ok
1.0 -1.3927287 0.24557555 // ok
1.0 -1.4088323 0.12325676 //ok
1.0 -1.4142138 -9.784749E-8 // ok for last time
1.0 -1.4088323 -0.12325695 // rotate to other side of X
1.0 -1.3927287 -0.24557574 // so on ...
Как вы рекомендуете мне исправить это и заставить его вращаться на все 360 градусов?
Изменить:
Должен ли (upX,upY,upZ)
вращаться и в этом случае?