Я пытаюсь повернуть модель на
(float) Math.atan2(-camX.getXf() * padX, -camDir.getZf() * padY)
Y
и
-MathUtils.HALF_PI
Z
Но
model.setRotation(new Matrix3(1,0,0,
0,(float) Math.atan2(-camX.getXf() * padX, -camDir.getZf() * padY),0,
0,0,-MathUtils.HALF_PI));
Он вращается вокруг оси y (хотя он и вбок, потому что это модель md2), но вращение оси Z не делает его правой стороной вверх.Любая идея, почему?
Каждая переменная находится в соответствующей области матрицы.
РЕДАКТИРОВАТЬ: хорошо, теперь я использую этот код:
float x = 0;
float y = (float) Math.atan2(-camX.getXf() * padX, -camDir.getZf() * padY);
float z = (float) -MathUtils.HALF_PI;
float a = (float) Math.sin(x);
float A = (float) Math.cos(x);
float b = (float) Math.sin(y);
float B = (float) Math.cos(y);
float c = (float) Math.sin(z);
float C = (float) Math.cos(z);
Matrix3 m = new Matrix3(A*b, -(B*a),b,
(C*a)+(A*b*c), (A*C)-(a*b*c), -(B*c),
(a*c)-(A*C*b), (A*c)+(C*a*b), B*C);
Но сейчасни одна из осей не вращается правильно.
Вот как настроена матрица:
xx, xy, xz,
yx, yy, yz,
zx, zy, zz