Вращается около 2 осей независимо - PullRequest
0 голосов
/ 03 мая 2011

Я ищу решение следующей проблемы:

У меня есть шар, движущийся в верхний правый угол экрана.То есть его скорость вправо и вверх одинакова.

Для имитации вращения он имеет угловую скорость вдоль оси X и Y - они также равны.

Этопока работает нормально.Теперь моя проблема состоит в том, чтобы правильно повернуть отображаемый шар: я использую OpenGL и простую сферу для мяча.

Теперь мой наивный подход заключался в использовании

glRotate(rx, 1, 0, 0); // rotate about x axis
glRotate(ry, 0, 1, 0); // rotate about y axis

Но это не работает так, как я задумал: второе вращение зависит от первого.Если подумать, это работает так, как я к этому привык.Но сейчас я ищу решение для правильного вращения мяча, независимо применяя оба вращения.

Я также пытался использовать кватернионы, но безуспешно.Я даже не уверен, что если что-то не так, то мой подход «повернуть на несколько градусов вокруг x, а затем около y» вообще имеет смысл.

Любое «просветление» очень ценится.

Спасибо!

1 Ответ

0 голосов
/ 03 мая 2011

Как насчет glRotate(rr, 1,1,0);, в этом случае вы вращаетесь вокруг произвольного вектора (1,1,0).

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