在我的 windows phone 应用程序中,我想使用屏幕触摸输入来旋转 3d 模型。
问题是;
起初一切都很好,我可以使用触摸移动模型,但是当我通过 X 轴的旋转使对象上下颠倒时,Y 轴的旋转就会反转。那是因为我的世界轴也发生了变化。我尝试了很多方法。
第一个:
Matrix world = Matrix.Identity *Matrix.CreateRotationY( somerotation);
world = world * Matrix.CreateRotationX( somerotation );
world *= Matrix.CreateTranslation(0, 0, 0);
第二:
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);
结果是一样的。。现在我的思想在不受控制地旋转。
如何使用旋转后不变的静态轴?或者有什么其他建议?
谢谢。