определить тангаж, рыскание, крен спереди справа - PullRequest
3 голосов
/ 04 декабря 2009

В моем дидактическом приложении openGL у меня есть несколько объектов на сцене, и когда я нажимаю на один из них, я хочу, чтобы моя камера смотрела на этот объект. Для этого после того, как я определил объект, по которому щелкнули, я вычисляю верхний, передний и правый векторы камеры, а затем мне нужно иметь возможность рассчитать угол наклона, рыскание, угол поворота камеры. Однако я совершенно не понимаю, как мне это сделать, поэтому любая помощь будет очень полезна.

Ответы [ 2 ]

1 голос
/ 04 декабря 2009

Это вопрос расчета в обратном направлении. Из вектора front вы сможете легко вывести относительные значения yaw и pitch.

Если ваша система координат имеет x и z в качестве пола

yaw = atan2(front.z, front.x);

Шаг может быть рассчитан путем нормализации front и использования asin

front.normalize();
pitch = asin(front.y);

Если у меня будет время позже, я посмотрю на вычисление roll

В противном случае шокировал хорошим предложением использовать gluLookAt

1 голос
/ 04 декабря 2009

На самом деле вам не нужно делать все эти вычисления. просто используйте glLookAt(). он принимает положение камеры, положение, куда вы хотите смотреть, и вектор вверх и соответственно ориентирует матрицу вида модели.

Если вы действительно хотите сделать это трудным путем, посмотрите мой ответ на этот вопрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...