Если бы я хотел преобразовать свои значения ускорения из системы координат телефона в мировую систему координат, какую матрицу вращения я должен использовать из диспетчера датчиков? Кроме того, если бы я был несколько значений акселерометра по каждому из ниже, что бы я на самом деле получил в результате?Матрица вращения Android для преобразования акселерометра
Есть немало перечисленных в Дев документы:
- TYPE_ROTATION_VECTOR
- TYPE_GAME_ROTATION_VECTOR
- TYPE_GEOMAGNETIC_ROTATION_VECTOR
- TYPE_ORIENTATION
- Там также, как представляется, метод
getRotationMatrix
предлагаемый API, но Я не уверен, является ли это комбинацией вышеизложенного или чего-то совершенно другого.
Я видел несколько потоков на этом (например, Acceleration from device's coordinate system into absolute coordinate system), но они довольно старые, и я не уверен, что если что-нибудь новое/более полезное добавлено андроид так
В вашем коде вы могли бы указать мне, где вы получаете матрицу вращения и выполняете умножение? Я хотел бы выяснить, как реализовать это самостоятельно, не полагаясь на другую библиотеку. – Simon
Также, как матрица вращения отличается от других, перечисленных выше? – Simon
Типы, перечисленные выше, дают вам вектор, а не матрицу. Вы можете получить матрицу вращения из нескольких методов в классе SensorManager. В моем коде посмотрите на метод processDataWithRotationMatrix в классе DSensorProcessor. –