-
Я использую команду gluLookAt для позиционирования камеры, но мне надо знать углы поворота сцены. То есть, зная позицию наблюдателя EyePos и координаты точки наблюдения ObservePos нужно перейти к углам поворота сцены относительно координатных осей AngleX,AngleY,AngleZ (к эквиваленту использования команд glRotate, glTranslate). И обратная задача, зная углы разворота сцены AngleX,AngleY,AngleZ относительно координатных осей и позицию центра сцены ScenePos, найти координаты EyePos и ObservePos.
-
var
mvMatrix: array[0..15] of GLDouble;
glGetDoublev(GL_MODELVIEW_MATRIX,@mvMatrix); Спасет отца русской демократии.
-
> var > mvMatrix: array[0..15] of GLDouble; > glGetDoublev(GL_MODELVIEW_MATRIX,@mvMatrix); > > Спасет отца русской демократии.
Это еще не все, что делать дальше?
-
> [2] Unknown user (19.06.08 20:05)
Дальше из матрицы получать угол и все остальное пожеланию. Вот только из курса ЛА и АГ, вы должны знать, что решений - бесчисленное множество, т.к. количество комбинаций углов, которые могут привести к текущему состояни - бескоенчно велико. Гугли на тему: Углы Эйлера.
-
Если мы изначально знаем вектор направления камеры (ObservePos - EyePos), то не проще ли получить из него углы банальными арктангенсами? Или это будут не те углы?
|