2010-06-08 5 views
2

Только начал реализовывать проект на основе дополненной реальности, получил местоположение GPS, заголовок, а две отсутствующие переменные для управления виртуальной камерой - это Pitch/Roll.Есть ли готовая формула для получения значений Pitch/Roll от акселерометра iPhone 3GS X/Y/Z?

Мне интересно, есть ли готовая формула, которую я могу объединить в проект. Могло бы пощадить меня много времени. Заранее спасибо.

ответ

2

Я думаю, this post о акселерометре iphone ответит на большинство ваших вопросов, включая пример кода.

+0

ооо, так просто pitch = acceleration.x, roll = acceleration.y. И компонент acceleration.z говорит мне, что устройство перевернуто каким-то образом. Это поможет мне как-то создать «360 градусов бесплатную камеру». Спасибо, Джайлс. – Geri

0

Вы можете получить доступ к вращению устройства через CMMotionManager который вычисляет радианы на основе исходных данных (акселерометр, гироскоп и т. д.). Убедитесь, что вы включили обновление датчика:


if (motionMng.deviceMotionAvailable && !motionMng.deviceMotionActive) { 
    motionMng.deviceMotionUpdateInterval = 1.0/50.0; 
    [motionMng startDeviceMotionUpdates]; 
} 

Затем доступ вращения - pitch (х), roll (у) и yaw (г) - с помощью запроса attitude объекта:


CMDeviceMotion *motion = [motionMng deviceMotion]; 

if (motion != NULL) { 

    float pitch = motion.attitude.pitch; 
    float roll = motion.attitude.roll; 
    float yaw = motion.attitude.yaw; 

    NSLog(@"ROTATION: x:%f y:%f z:%f", pitch, roll, yaw); 
}