2014-10-28 183 views
0

我想旋转一个向量与旋转矩阵使用LibGdx向量和矩阵类。但是,当我试图乘以矩阵向量时,它说,类型Vector3中的方法mul(float)不适用于参数(Matrix3)。我知道他应该工作烧烤我检查LibGdx文档: Vector3 mul(矩阵3矩阵) 左乘以给定矩阵的向量。 所以,它应该工作,但我得到上面提到的错误。起初,我认为这是矩阵尺寸误差,但不应该是矩阵是3乘3,矢量应该是3乘1.我认为我有更多的语法问题,因为我没有找到任何例子做矢量和矩阵乘法。任何帮助指向正确的方向或更好的方式来旋转矢量将非常感激。总之,这里是我的代码:矩阵和向量乘法在libdx

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); 

回答

0

有旋转Vector3,想尽了办法一个简单的方法:

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

根据你的代码将变为:

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

unrotatedPositon现在旋转。也许你应该选择其他名字。

没有必要为这些变量:

private Vector3 rotatedPosition; 
private Matrix3 rotationMatrix;