Приложение iOS для определения местоположения наклона - PullRequest
2 голосов
/ 02 июля 2011

Как определить местоположение наклона в направлении y в моем приложении для iOS? Сначала я попробовал поиграть с акселерометром. Но значения акселерометра меняются, даже если iPhone не наклоняется. Затем я попытался поиграть с гироскопом. Но это только определяет скорость наклона, а не положение наклона.

Вот что конкретно я пытаюсь сделать:

Если вы поместите iPhone на стол в горизонтальном положении с кнопкой «Домой» вверху. Затем вы медленно переворачиваете его таким образом, чтобы дисплей был обращен вниз (вы видите заднюю часть телефона), а кнопка «Домой» все еще оставалась слева. То наклонное движение, которое необходимо сделать, это то, что я пытаюсь измерить.

Ответы [ 2 ]

2 голосов
/ 05 июля 2011

Вам следует рассмотреть возможность использования Core Motion API, поскольку он предоставляет значения, готовые к использованию в качестве угла Эйлера, кватерниона или частоты вращения.Взгляните на

Обнаружение акселерометра и вращение спрайта

iPhone - Что измеряет гироскоп?Могу ли я получить измерение абсолютной степени по всей оси?

iphone - движение ядра (относительное вращение)

2 голосов
/ 02 июля 2011

Акселерометр это то, что вы хотите. Если ваш вектор ускорения равен a = (x, y, z), то углы между этим вектором и тремя осями определяются как:

cos (angleXaxis) = x / sqrt(x^2 + y^2 + z^2)

cos (angleYaxis) = y / sqrt(x^2 + y^2 + z^2)

cos (angleZaxis) = z / sqrt(x^2 + y^2 + z^2)

Чтобы получить сами углы, вам нужно использовать обратную функцию cos.

...