Используя Android opengl, мне нужно переместить объект из точки A в точку B и одновременно повернуть его вокруг своей локальной оси Z.Последние 3 дня я читал учебные пособия, каждый из них дает вам информацию и подсказки, но никто не может объяснить это сверху вниз для начинающих.
Я знаю, как переводить объект только из точкиA в точку B. Я также знаю, как вращать объект в точке A вокруг его локальной оси (перевести его в исходное положение, повернуть его, перевести обратно). Я не знаю, как вращать и перемещать одновременно.
Я пытался перевести в начало координат, повернуть, перевести обратно, затем перевести в точку B. Это не работает, и я думаю, я знаю почему (вращение мешает оси объекта, поэтому перевод в точкуB неверен)
A(-x1, y1 , -z1)
B(-x1 + deltaX, y1 + deltaY, -z1 + deltaZ)
_gl.glTranslatef(x1, -y1 , z1);
_gl.glRotatef(degrees, x1, -y1 , z1);
_gl.glTranslatef(-x1, y1 , -z1);
_gl.glTranslatef(deltaX, deltaY, deltaZ);
Мне нужно принять во внимание то, как вращение изменяет оси.Некоторые говорят, что я могу сделать это с помощью кватернинонов или матриц вращения и т. Д. Но у меня недостаточно знаний opengl, чтобы использовать apis для решения этой проблемы.
Может кто-нибудь объяснить мне это?С каким-то кодом тоже?
Заранее спасибо.