Устройство компенсации крена на дополненной реальности - PullRequest
4 голосов
/ 15 ноября 2011

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

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

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

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

Спасибо.

1 Ответ

1 голос
/ 15 ноября 2011

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

...