как сделать объект на орбите относительно оси X в OpenGL - PullRequest
0 голосов
/ 14 октября 2018

Предположим, я создал куб и хочу, чтобы он вращался вокруг оси x после перетаскивания его с оси x.

Какие матричные операции мне нужно выполнить?Я знаю, что для поворота относительно оси x мне нужно выполнить следующую операцию

enter image description here

но как насчет орбиты?Под орбитой я подразумеваю, что куб будет вращаться вокруг оси X как круг без самостоятельного вращения

Спасибо.

1 Ответ

0 голосов
/ 14 октября 2018

Движение по орбите на самом деле просто перевод.У вас есть два варианта: либо объединить матрицу вращения с переводом и отменить вращение, либо рассчитать соответствующий вектор перевода.

Первый вариант будет:

R(theta) * T(0, 0, orbitRadius) * R(-theta)

Второй вариант будетбыть:

T(0, -orbitRadius * sin(theta), orbitRadius * cos(theta))
...