我有我我的3D物體上旋轉的問題(這是在Java,但它並不重要)一般簡單的3D矩陣輪換問題
背景:
我有一個簡單的3D模型,並且您是第一人稱玩家,您將鼠標向上移動以查找(IE通過3D的x軸旋轉)並向下移動鼠標以向下看(向相反方向旋轉)
但:
我也有左,右箭頭鍵左/右(其中ro定位3D的Y軸)
現在的問題是,當我轉身時,當我旋轉x軸時,它不再像預期的那樣轉動,即如果轉動180度,通過向下移動鼠標,如果你移動鼠標,你實際上往下看。
我可以在x/y軸上執行什麼旋轉來解決這個問題?
所以不管我轉過多少/小,鼠標向上移動都會擡起來,鼠標向下移動會向下看。
對不起,我不能更好地解釋它,但如果你需要更多的信息只是發表評論。
非常感謝,
這是probabaly簡單的改造,但我想不出:(
一些Java的輪換代碼:
鼠標向上/向下:
public void rotateXY(double radians, double Yradians)
{
vpTrans.getTransform(T3D);
Transform3D test = new Transform3D();
Transform3D testX = new Transform3D();
Transform3D testY = new Transform3D();
translate.set(lastXcord, lastYcord, lastZcord);
testX.rotX(radians);
testY.rotY(Yradians);
test.mul(testX, testY);
test.setTranslation(translate);
vpTrans.setTransform(test);
//System.out.println(test);
} // end of rotateXY()
左圖:(右圖相似但帶有減號,而不是角度變化的加號)
public void run() {
Transform3D test = new Transform3D();
Transform3D rotX = new Transform3D();
Transform3D rotY = new Transform3D();
vpTrans.getTransform(T3D);
translate.set(lastXcord, lastYcord, lastZcord);
angle += 0.05;
trueangle += 0.05;
rotX.rotX(angle);
rotY.rotY(Yangle);
test.mul(rotX, rotY);
test.setTranslation(translate);
vpTrans.setTransform(test);
}
我需要添加什麼轉換/旋轉,所以無論我的y軸,當鼠標向下移動時鼠標上下移動時,相機會查找?
我可能在某些時候在解釋中混淆了X/Y軸,但您希望得到這個想法! –