2017-01-04 76 views
0

似乎無法找到解決我的以下問題。我有一個在libGDX中設置的透視凸輪。我使用.rotateAround例程旋轉我的相機。當在低座標上旋轉時,這是完美的。但是,旋轉的軸的座標越高,旋轉變得越乾燥。LibGDX相機繞軸旋轉高座標生澀

在我CameraInputController類:

@Override 
protected boolean process(float deltaX, float deltaY, int button) { 

     if (button == Buttons.LEFT) { 

     // DRAG CAMERA 

     } else if (button == Buttons.RIGHT) { 

     // ROTATE CAMERA 
     perspectiveCam.rotateAround(new Vector3(clickedX, clickedY, 0), Vector3.Z, deltaX * -100); 

     } 

    return true; 
} 

這工作:

perspectiveCam.rotateAround(new Vector3(0f, 0f, 0f), Vector3.Z, deltaX * -100) 

小部分拖動下面的代碼結果,隨後突然旋轉,然後再拖着,等:

perspectiveCam.rotateAround(new Vector3(100000f, 100000f, 0f), Vector3.Z, deltaX * -100) 

我知道它通過翻譯,然後旋轉凸輪,然後翻譯把相機拿回來。任何人都可以將我指向正確的方向嗎?它是在半徑/浮點值的東西嗎?

在此先感謝!

編輯: 看到這裏的 '錯誤': rotating gif

+0

im curiouos,Vector3.Z返回什麼值? O.o – Hllink

+0

Vector3.Z是一個新的Vector3(0,0,1)!我正在將我的相機旋轉的軸...編輯:第一個參數矢量3是設置旋轉矢量的點,第二個參數是旋轉的軸(Vector.Z),第三個參數是角度(浮動)。 – user2150129

回答