Как найти направление ускорения по величине из трех осей составляющих ускорения? - PullRequest
0 голосов
/ 14 апреля 2020

Что я пытаюсь сделать?

Используя датчик Android, я собрал много значений ускорения, когда некоторые пациенты с диабетом c бегали делать физические упражнения , Каждое значение ускорения состоит из трех компонентов: ускорение по оси x, ускорение по оси y, ускорение по оси z. Затем мне нужно вычислить общую величину каждого значения ускорения и его направление.

Тогда, что создает проблему?

В моих данных направление компоненты ускорения (x, y, z) представлены знаком (+ или -). Например: компонент оси x значения ускорения: + 5,4 мс ^ -2, ось y: -2,3 мс ^ -2, ось z: -6,7 мс ^ -2. Поэтому мне нужно такое направление (+ или -) для общая величина каждого значения ускорения.

Я рассчитал величину каждого ускорения по формуле square_ root (x ^ 2 + y ^ 2 + z ^ 2) . Тем не менее, я не знаю, как я могу рассчитать направление этой величины? То есть я не знаю направления (+ или -) общего ускорения?

Примечание:

Я проверил много вопросов и ответов (например, 1 , 2 , 3 ) СО. Я также проверил android документ . Хотя в документе немного говорилось о направлении, я не понимал, как я могу реализовать, чтобы найти конкретное направление c (+ или -) от общей величины ускорения. Более того, я проверил много статей, касающихся ускорения. Тем не менее, проблема не решена.

Ответы [ 2 ]

1 голос
/ 14 апреля 2020

Вы можете получить направление, используя простую тэту mathy / x = tan, где theta - угол от начала координат в плоскости xy. Подобная математика может помочь вам в этом. Проблема для вас - все, что касается телефона, а не пользователя. Так что, если его телефон был под углом в кармане, вы не получите ответы, которые вы хотите. Хуже, если это было с ног на голову.

Тем не менее, я подвергаю сомнению фактическую потребность в этом. Если вы пытаетесь добиться относительных усилий от их осуществления, величины должно быть достаточно. Если вы пытаетесь сделать что-то вроде отображения, данные ускорения слишком шумные для точности.

0 голосов
/ 14 апреля 2020

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

...