iOS 4 ядро ​​ориентации движения в альбомной ориентации - PullRequest
4 голосов
/ 21 февраля 2011

Я пытался повернуть мое представление на основе CMAttitude, возвращенного из CMMotionManager, в частности pitch = x и roll = y.Я использую эталонное отношение, чтобы установить свой горизонт.Это прекрасно работает в портретном режиме, но в ту минуту, когда я пытаюсь сделать это для альбомной ориентации, происходит сбой.Поскольку телефон теперь повернут на 90 ccw, я надеялся, что coremotion узнает, что ландшафт на месте, и поддержит высоту звука.Вместо этого у меня все еще есть ось, указывающая их оригинальный путь.Чтобы попытаться компенсировать это, я просто изменил знак roll = x и переключил pitch = y.Это работало, пока я не держал устройство перед собой и не повернул на 180 градусов.Вид перевернулся с ног на голову и перевернулся.

Мое чувство шпионки говорит мне, что мне нужно применить правильное преобразование к тональному броску и рысканию, чтобы переориентировать позицию

Я надеюсь, что некоторые гении или гении могут мне помочь.Математика явно не моя сильная сторона.

1 Ответ

3 голосов
/ 21 февраля 2011

Вы правы, изменение высоты тона приведет к серьезным неприятностям. Кажется, что самый простой способ - работать с новым отношением, как в образце CoreMotionTeapot. Как только обнаруживается изменение ориентации, вам нужно захватить текущее отношение перед тем, как умножить его на ваше прежнее исходное отношение, и установить его как новое ссылочное отношение.

...