Как я могу получить вектор магнитного поля, не зависящий от вращения устройства?

То, что я хочу заархивировать, это своего рода «магнитный отпечаток» местоположения. Я использую датчик MAGNETIC _FIELD, и в случае, если я получу 3 значения для (, к сожалению, без дальнейшего объяснения )осей X, Y и Z.

Проблема в том, что значения меняются при повороте устройства, поэтому я предполагаю, что 3 оси относятся к устройству. Что мне нужно, так это компенсировать вращение устройства, чтобы я получал те же 3 значения, независимо от того, как вращается устройство.

Пробовал умножать на матрицу поворота (Я знаю, как это получить ), пробовал умножать на матрицу наклона и так далее, но ничего не получается. Независимо от того, что я пытаюсь, все равно значения меняются, когда я поворачиваю устройство.

Так кто-нибудь знает, как это сделать правильно? Желательно с кодом, потому что я читал много вещей типа «ну тогда вам придется компенсировать это с помощью матрицы вращения», но не нашел ни одного конкретного рабочего примера.

11
задан Ridcully 2 August 2012 в 10:55
поделиться