Ответ, приведенный выше, не совсем точен, хотя, вероятно, достаточно ответить на этот вопрос. Core Motion всегда пытается определить абсолютную ориентацию устройства, что означает, что определение осей может варьироваться в зависимости от ориентации устройства. Например, если устройство обращено вверх, то шаг вверх / вниз - это вращение вокруг оси y, но если устройство находится в горизонтальной ориентации, то шаг - это вращение вокруг оси z (перпендикулярно плоскости экран). Это несколько полезно, если ваше приложение будет использоваться только в одной ориентации, или вы хотите получить дельту, подобную заданному вопросу, но усложняет ее, если вы хотите знать абсолютную ориентацию.

ли способ получить относительное вращение от движения ядра?

Что мне нужно, это: сколько он повернул в одну ось и в каком направлении (+ знак = против часовой стрелки, - = по часовой стрелке, в соответствии с правилом правой руки).

Я нашел свойство RotationRate, но теперь я уверен, как мне извлечь из него угол, так как это дает мне радианы в секунду.

Я делал все в последние дни, но ничто не дает мне стабильных ценностей. Я попытался выполнить синхронизированную выборку данных о движении ядра, используя NSTimer, и рассчитать разницу между двумя выборками, чтобы я мог определить, насколько сильно он повернулся с момента последней выборки, но время от времени он дает мне сумасшедшие числа, например 13600 градусов. даже когда iPhone лежит на столе.

Есть мысли о том, как это можно сделать?

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос