Компенсация рулона устройства на дополненной реальности

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

Однако, когда я просматриваю iPhone, вся информация на экране исчезает. Это связано с тем, что когда вы переворачиваете устройство, ориентация компаса также изменяется. Тем не менее, есть такие приложения, как Layar или Wikitude, которые позволяют вращать ролл, не теряя при этом фокус на визуальных элементах, которые вы накладываете на слой камеры. Таким образом, эти приложения обеспечивают плавный переход между портретной ориентацией и альбомной ориентацией.

Как они это достигают? Как я могу скомпенсировать вращение рулона устройства, чтобы сохранить информацию на экране?

Кстати, структура ARKit имеет ту же проблему, что и я.

Благодарю.

One Solution collect form web for “Компенсация рулона устройства на дополненной реальности”

Если вы находитесь в 2D, возможно, достаточно взять точку, которую вы вычисляете из поля зрения камеры и заголовка смещения, рассчитать расстояние до центра экрана и использовать это расстояние в качестве радиуса для круга, чтобы сделать x + = r * cos, y + = r * sin с -roll как угол, поэтому объект перемещается по кругу против рулона. Тогда вам просто нужно противодействовать вращению изображения с помощью преобразования (CGAffineTransformMakeRotation), чтобы он был вертикальным.

Interesting Posts

Как сохранить массив строки в Keychain?

Протокол можно использовать только в качестве общего ограничения, поскольку он имеет собственные или связанные требования типа

ShowMessage () не работает для симулятора iOS 7 в Delphi xe5

Ключ аутентификации Apple Push Notification (песочница и производство)

компиляция stasm для mac

Изображение пользовательской кнопки UITableViewCell, отображаемое неправильно после прокрутки UITableView

hitTest срабатывает при прослушивании UIKeyboard

Центральный диспетчер corebluetooth для iPhone отправляет данные в периферийные устройства

Как используется layoutIfNeeded?

Как получить изображение с UIImagePickerController и перейти к следующему VC

Как получить ссылку на кнопку из UITableViewRowAction?

Мерцание MapOverlay после уменьшения и увеличения в iOS

Почему Apple Matrix Multiplication Пример требует заполнения C

iOS 9: Как изменить объем программно, не отображая всплывающее окно звуковой панели системы?

расстояние справаBarButtonItems в UINavigationBar

PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.