내 Windows phone 응용 프로그램에서 화면 터치 입력을 사용하여 3D 모델을 회전하고 싶습니다.Windows phone 터치로 3D 모델 회전
문제는 다음과 같습니다.
처음에는 모든 것이 괜찮습니다. 터치를 사용하여 모델을 이동할 수 있지만 X 축에서 회전하여 개체를 거꾸로 만들면 Y 축 회전이 반전됩니다. 내 세계 축이 변경 되었기 때문입니다. 나는 많은 방법을 시도했다.
1 : 2
Matrix world = Matrix.Identity *Matrix.CreateRotationY(somerotation);
world = world * Matrix.CreateRotationX(somerotation);
world *= Matrix.CreateTranslation(0, 0, 0);
: 3
Matrix world = Matrix.Identity * Matrix.CreateFromYawPitchRoll(somerotation,somerotation,0);
world *= Matrix.CreateTranslation(0, 0.0f, zoomXY);
:
Matrix world = Matrix.Identity *Matrix.CreateFromQuaternion(Quaternion.CreateFromAxisAngle(new Vector3(0, 1, 0),somerotation));
world *= Matrix.CreateFromQuaternion(Quaternion.CreateFromAxisAngle(new Vector3(1, 0, 0), somerotation));
world *= Matrix.CreateTranslation(0,0,0);
4
Matrix world = Matrix.Identity;
world = Matrix.CreateFromAxisAngle(Vector3.Up,somerotation);
world *= Matrix.CreateFromAxisAngle(Vector3.Right,somerotation);
world *= Matrix.CreateTranslation(0, 0,0);
결과는 동일합니다. 지금 내 마음은 통제없이 돌아가고 있습니다.
회전 후에 변경되지 않는 정적 축을 어떻게 사용할 수 있습니까? 아니면 다른 제안?
감사합니다.
먼저 답장을 보내 주셔서 감사합니다. 나는 현재 벡터를 지키는 것을 완전히 이해할 수 없었다. 세계의 현재 벡터 또는 단위 행렬? 짧은 의사 코드가 유용 할 수 있습니다. – user1601594
나는 당신의 코드를 연구 중이다. 내 문제는 여전히 존재합니다. 이것은 내 문제를 해결하지 못했습니다. 그러나 당신은 나에게 문제를 해결할 수있는 훌륭한 아이디어를주었습니다. 감사합니다. 문제를 해결할 수 있기를 바랍니다. – user1601594