Я поддерживаю Portrait и Landscape-Mode для WindowsPhone-страницы, где я комбинирую silverlight и XNA.
Чтобы вставить RotationMatrix в систему координат XNA в портретном режиме, я поворачиваю матрицу на 90 ° вокруг оси x следующим образом:
viewMatrix = Matrix.CreateRotationX(MathHelper.PiOver2) * motion.CurrentValue.Attitude.RotationMatrix;
Кажется, что RotationMatrix вращается вместе со страницей в альбомном режиме. Я попытался повернуть матрицу вокруг оси Z дополнительно. По крайней мере, мои объекты отображаются правильно, но высота / рыскание перепутаны.
viewMatrix = (Matrix.CreateRotationZ(MathHelper.PiOver2) * (Matrix.CreateRotationX(MathHelper.PiOver2) * motion.CurrentValue.Attitude.RotationMatrix));
Как мне умножить RotationMatrix, чтобы получить правильные значения в ландшафтном режиме?
Спасибо заранее!