Attitude.RotationMatrix vs. Matrix.CreateFromYawPitchRoll()

时间:2013-04-25 16:15:33

标签: c# windows-phone-7 xna windows-phone-8 windows-phone

运动传感器返回的RotationMatrix不应该等于使用相同运动读数的偏航,俯仰和滚转值创建的矩阵吗?

拥有以下代码:

MotionReading mr = motion.CurrentValue;
Matrix m1 = mr.Attitude.RotationMatrix;
var yaw = mr.Attitude.Yaw;
var pitch = mr.Attitude.Pitch;
var roll = mr.Attitude.Roll;
Matrix m2 = Matrix.CreateFromYawPitchRoll(yaw, pitch, roll);

m1和m2不应该相等吗?我在那里错过了什么?

1 个答案:

答案 0 :(得分:0)

您的RotationMatrix如何计算? 如果您在多个轴上旋转模型,有时可能会出现第一个旋转实际旋转另一个轴的问题,也许这就是CreateFromYawPitchRoll为您提供与您不同的Matrix的原因RotationMatrix
我建议您使用CreateFormYawPitchRoll,或者您可以尝试使用Quaternions