我正在尝试使用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);
答案 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;