这是一个 3d n00b 问题。
我正在开发一个 WPF 控件,它实现了 Silverlight 的 PerspectiveTransform 功能的基础知识,允许在三个轴中的任何一个上旋转 2D 平面。它工作得很好。但是,我对确定飞机后部是否显示所需的数学有点犹豫。我现在弄清楚这一点的天真代码是:
bool isBackShowing = Math.Abs(RotationX) > 90 && Math.Abs(RotationY) < 90;
if (!isBackShowing)
{
isBackShowing = Math.Abs(RotationX) < 90 && Math.Abs(RotationY) > 90;
}
但是,当任一轴上的旋转在 +-270 和 +-360 之间时,这将失败。
底层变换是使用四元数对象进行实际旋转,它具有很好的 Axis 和 Angle 属性,所以我猜如果我知道如何使用它,我可以使用它。