WiimoteEmu: Fix gyroscope/quaternion conversion math.

This commit is contained in:
Jordan Woyak 2022-10-10 21:18:55 -05:00
parent 6eb1f8beba
commit bf53e14abe
1 changed files with 3 additions and 1 deletions

View File

@ -398,7 +398,9 @@ Common::Quaternion GetRotationFromAcceleration(const Common::Vec3& accel)
Common::Quaternion GetRotationFromGyroscope(const Common::Vec3& gyro) Common::Quaternion GetRotationFromGyroscope(const Common::Vec3& gyro)
{ {
return Common::Quaternion{1, gyro.x / 2, gyro.y / 2, gyro.z / 2}; const auto length = gyro.Length();
return (length != 0) ? Common::Quaternion::Rotate(length, gyro / length) :
Common::Quaternion::Identity();
} }
Common::Matrix33 GetRotationalMatrix(const Common::Vec3& angle) Common::Matrix33 GetRotationalMatrix(const Common::Vec3& angle)