Вращение к пути в OpenGL - PullRequest
       31

Вращение к пути в OpenGL

1 голос
/ 08 декабря 2010

У меня возникли проблемы с вращением объекта в трехмерном пространстве, основанные на функции вращения OpenGL glRotatef (..).

glRotatef ( angle , x , y , z )

Мой объект путешествует из одной точки в другую в трехмерном пространстве. Я хочу, чтобы мой объект вращался в направлении, в котором он движется.

Как найти угол, x, y, z, необходимый для функции glRotatef (...), если я знаю точку, с которой начинаю, и точку, где заканчиваю.

Ответы [ 2 ]

1 голос
/ 08 декабря 2010

Функция gluLookAt - это в точности , что вам нужно здесь. Это избавит вас от вычисления оси и угла вручную.

0 голосов
/ 08 декабря 2010

Очень грубо, вам нужно получить ось вращения, которая будет нормальна как к направлению движения, так и к нормали поверхности, что будет означать перекрестное произведение направления движения (T) и нормали поверхности ( п) даст вам ось для вашего вращения. Таким образом, ось (A) будет:

A = норма (T x n) или, возможно, A = норма (n x T), один из которых позволит вам использовать положительный угол для «вращения» в правильном направлении.

Тем не менее, положительный или отрицательный характер угла поворота необходимо проанализировать в зависимости от того, какой из вышеперечисленных вы используете, но это должно помочь вам начать работу с осью вращения:

...