2014-10-28 212 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;