Ускорение телефона относительно начальной привязки кадра в iOS - PullRequest
0 голосов
/ 14 октября 2018

Можно ли как-нибудь получить вектор ускорения относительно начальной ссылки кадра в любое время?(что я имею в виду: ссылка на кадр в режиме xArbitraryZVertical, когда я впервые получил данные Core Motion) Что я пытался сделать: Каждый раз, когда я получаю данные CM, я умножаю новую матрицу вращения (которая находится в свойстве ориентации) на старую матрицу вращения (матрица, которую я получил на предыдущих шагах путем умножения на и на матриц вращения) и умножить это на вектор ускорения.Но это не похоже на работу.Может быть, это немного глупый вопрос, извините, но я действительно не знаю, как делать то, что я хочу.А может быть, есть более простой способ сделать это?

1 Ответ

0 голосов
/ 14 октября 2018
  1. Опрашивайте deviceMotion менеджера движения несколько раз.

  2. Каждый раз, когда вы получаете nil, возвращайтесь, ничего не делая.

  3. При первом получении результата, отличного от нуля, сохраните его отношение к свойству экземпляра.

  4. При каждом последующем получении результата, отличного от нуля, вызовите multiply(byInverseOf:) на его отношение, с сохраненным отношением в качестве аргумента.В результате отношение меняется с оригинала.

...