Это вопрос 3d n00b.
Я работаю над элементом управления WPF, который реализует основы функции PerspectiveTransform Silverlight, позволяя поворачивать 2D-плоскость по любой из трех осей.Это работает довольно хорошо.Однако я немного застрял на математике, необходимой для определения того, показывает ли заднюю часть самолета.Мой наивный код для определения этого сейчас:
bool isBackShowing = Math.Abs(RotationX) > 90 && Math.Abs(RotationY) < 90;
if (!isBackShowing)
{
isBackShowing = Math.Abs(RotationX) < 90 && Math.Abs(RotationY) > 90;
}
Однако, это не работает, когда вращение находится между + -270 и + -360 по любой оси.
Базовое преобразование используетобъект Quaternion для фактического вращения, и он имеет хорошие свойства Axis и Angle, так что я думаю, я мог бы просто использовать это, если бы знал как.