내가 내 3D 오브젝트 내 회전에 문제가 (그것은 자바에있어하지만 정말 중요하지 않습니다)일반 간단한 3D 매트릭스 회전 문제
가 배경 :
내가 간단한 3D 모델을 가지고, 당신이 그것을에 첫 번째 사람 플레이어, 당신은 (3 차원의 x 축에 의해 IE 회전)을 찾아 볼 위로 마우스를 이동하고 (반대 방향으로 회전)를 내려다 볼 아래로
을 마우스를 이동하지만 :
왼쪽/오른쪽 화살표 키를 사용하여 왼쪽/오른쪽으로 돌릴 수도 있습니다 (어느 ro x 축에 따라 회전 할 때 더 이상 예상대로 회전하지 않습니다. 예를 들어, 180도 회전하면 마우스를 실제로 움직여 문제가 발생합니다. 마우스를 올리면 실제로 내려다 보입니다.
이것을 해결하기 위해 x/y 축에서 어떤 회전을 수행 할 수 있습니까?
- 아무리 많이 돌리더라도 마우스를 위로 움직이면 아래로 내려다 보입니다.
죄송합니다. 더 설명 할 수 없지만 더 많은 정보가 필요하면 의견을 말하십시오.
덕분에 많이,
그것은 probabaly 간단한 변환하지만 내가 생각할 수 없다 :(
자바 회전 코드의 일부 :
마우스를 위/아래 :
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 축이 설명에 섞여있을 수 있지만 잘하면 아이디어를 얻습니다 !! –