2011-11-15 4 views
3

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

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

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

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

Спасибо.

ответ

0

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

Смежные вопросы