libgdx中的矩阵和向量乘法

时间:2014-10-28 22:37:29

标签: matrix vector libgdx

我正在尝试使用LibGdx向量和矩阵类来旋转带有旋转矩阵的向量。然而,当我试图通过矩阵乘以向量时,它表示Vector3类型中的方法mul(float)不适用于参数(Matrix3)。我知道他应该工作烧烤我检查LibGdx文档:       Vector3 mul(Matrix3矩阵)       左 - 乘以给定矩阵的向量。 所以,它应该工作,但我得到上面提到的错误。起初我认为这是矩阵维度误差,但不应该是矩阵是3乘3,矢量应该是3乘1.我认为我有更多的语法问题,因为我没有找到任何做矢量的例子和矩阵乘法。任何指向正确方向的帮助或旋转矢量的更好方法都将非常感激。无论如何,这是我的代码:

private Vector3 unrotatedPositon;
private Vector3 rotatedPosition;
private Matrix3 rotationMatrix;
unrotatedPositon = new Vector3(asteroid1.getX(), asteroid1.getY() , 0);
rotationMatrix = new Matrix3();
rotationMatrix.setToRotation(45);
rotatedPosition = unrotatedPositon.mul(rotationMatrix);

1 个答案:

答案 0 :(得分:0)

有一种更简单的方法可以旋转Vector3,尝试方法:

rotate(float degrees, float axisX, float axisY, float axisZ);

根据你的代码,它将成为:

unrotatedPositon.rotate(45f, 0f, 0f, 1f);

unrotatedPositon现在轮换了。也许你应该选择其他名字。

不需要这些变量:

private Vector3 rotatedPosition; 
private Matrix3 rotationMatrix;