Я пытаюсь понять, как getRotationMatrix()
и getOrientation()
работают точно.
До сих пор я знал, что в функции getRotationMatrix()
он перекрестно производит вектор гравитации с магнитным вектором, чтобы получить новый вектор, указывающий на восток. И затем, он снова создает перекрестный вектор Восток с вектором гравитации, чтобы получить вектор, указывающий на магнитный север. В соответствии с этой статьей сказано, что теперь у нас есть три ортогональных вектора, и мы можем сформировать матрицу вращения.
Вот мой первый вопрос : Почему мы должны снова произвести перекрестное произведение вектора Востока с вектором гравитации, чтобы получить вектор, указывающий на магнитный север? Разве оригинальный магнитный вектор не указывает на магнитный север? В чем разница между новым вектором и исходным магнитным вектором?
Говоря о getOrientation()
, вот мой второй вопрос : как получаются азимут, крен и наклон? Есть какие-нибудь уравнения или формулы для объяснения?
Вы можете перейти на этот веб-сайт , чтобы увидеть код
очень признателен за ваше внимание. Большое спасибо!